#include <bits/stdc++.h>
using namespace std;
const int N = 105;
const int mod = 1e9 + 7;
int n, arr[N], dp[N][N][N][2];
int rec(int i, int odd, int even, bool par) {
  if (odd < 0 || even < 0) return N;
  if (i > n) return 0;
  int &t = dp[i][odd][even][par];
  if (t != -1) return t;
  if (arr[i] == 0) {
    return t = min((!par and i > 1) + rec(i + 1, odd - 1, even, 1),
                   (par and i > 1) + rec(i + 1, odd, even - 1, 0));
  }
  return t = (par ^ (arr[i] & 1)) + rec(i + 1, odd, even, arr[i] & 1);
}
signed main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  memset(dp, -1, sizeof dp);
  int odd = n / 2, even = n / 2;
  if (n % 2) odd++;
  for (int i = int(1); i <= int(n); i++) {
    cin >> arr[i];
    if (arr[i] & 1)
      odd--;
    else if (arr[i] > 1)
      even--;
  }
  cout << min(rec(1, odd, even, 0), rec(1, odd, even, 1)) << '\n';
  return 0;
}
