#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000;
int N;
vector<int> v;
int dp[105][105][105][2];
int solve(int i, int o, int e, int prev) {
  if (i >= N) return 0;
  if (prev != -1 && dp[i][o][e][prev] != -1) return dp[i][o][e][prev];
  int x = v[i];
  int a = ((x % 2 == prev || prev == -1) ? 0 : 1);
  if (x != 0) return a + solve(i + 1, o, e, x % 2);
  int od = INF;
  if (o > 0) {
    a = ((prev == 1 || prev == -1) ? 0 : 1);
    od = a + solve(i + 1, o - 1, e, 1);
  }
  int ev = INF;
  if (e > 0) {
    a = ((prev == 0 || prev == -1) ? 0 : 1);
    ev = a + solve(i + 1, o, e - 1, 0);
  }
  int res = min(od, ev);
  if (prev != -1) dp[i][o][e][prev] = res;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  memset(dp, -1, sizeof(dp));
  cin >> N;
  int e = N / 2;
  int o = N - e;
  v = vector<int>(N);
  for (auto& x : v) cin >> x;
  for (int& x : v) {
    if (x == 0) continue;
    if (x % 2 == 0)
      e--;
    else
      o--;
  }
  int res = solve(0, o, e, -1);
  cout << res << "\n";
}
