#include using namespace std; int main(){ int N; cin >> N; vector A(N); for(int i = 0; i < N; i++) cin >> A[i]; vector cnt; vector z, o; int zero = 0, one = 0; for(int i = 0; i < N; i++){ if(A[i] == 0) zero++; else if(A[i] == 1) one++; else{ cnt.push_back(zero + one); o.push_back(one); z.push_back(zero); one = 0; zero = 0; } } if(one + zero != 0){ cnt.push_back(zero + one); o.push_back(one); z.push_back(zero); } int sum = 0; zero = 0, one = 0; for(int i = 0; i < cnt.size(); i++){ sum += cnt[i]; one += o[i]; zero += z[i]; } vector> dp((int)cnt.size() + 1, vector(sum + 1, -1)); dp[0][0] = 0; for(int i = 0; i < (int)cnt.size(); i++){ for(int j = 0; j < sum + 1; j++){ if(dp[i][j] != -1){ dp[i + 1][j] = max(dp[i + 1][j], dp[i][j]); dp[i + 1][j + cnt[i]] = max(dp[i + 1][j + cnt[i]], dp[i][j] + o[i]); } } } if(dp[cnt.size()][one] == -1) cout << -1 << endl; else{ cout << one - dp[cnt.size()][one] << endl; } }