#================================================= N=int(input()) A=list(map(int,input().split()))+[2] #=== P=A.count(0) Q=A.count(1) #=== 可能どうかの判定 X=[] x=0 for a in A: if a!=2: x+=1 else: if x: X.append(x) x=0 DP=[0]*(P+1); DP[0]=1 for x in X: for k in range(P,x-1,-1): DP[k]|=DP[k-x] if DP[P]==0: exit(print(-1)) #=== 回数を求める Y=[] p=q=0 for a in A: if a==0: p+=1 elif a==1: q+=1 else: Y.append((p,q)) p=q=0 K=0 for p,q in Y: K+=min(p,q) print(K//2)