#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e15;
const double pi = acos(-1.0);
long long gcd(long long a, long long b) {
  while (b) {
    a %= b;
    swap(a, b);
  }
  return a;
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long binpows(long long a, long long b) {
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = res * a;
    a = a * a;
    b >>= 1;
  }
  return res;
}
const long long mod = 1e9 + 7;
long long binpow(long long a, long long b, long long m) {
  a %= m;
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = res * a % m;
    a = a * a % m;
    b >>= 1;
  }
  return res;
}
vector<long long> v;
long long dp[101][101][101][2];
long long n;
long long resolve(long long pos, long long par, long long impar, bool at) {
  long long &x = dp[pos][par][impar][at];
  if (x != -1) {
    return x;
  }
  if (pos == n - 1) return x = 0;
  x = INF;
  if (v[pos + 1] == 0) {
    if (impar > 0) {
      if (at == 0) {
        x = min(x, 1 + resolve(pos + 1, par, impar - 1, 1));
      } else {
        x = min(x, resolve(pos + 1, par, impar - 1, 1));
      }
    }
    if (par > 0) {
      x = min(x, resolve(pos + 1, par - 1, impar, 0) + (at == 1 ? 1 : 0));
    }
  } else {
    if (v[pos + 1] % 2 == 0) {
      x = min(x, resolve(pos + 1, par, impar, 0) + (at == 1 ? 1 : 0));
    } else {
      x = min(x, resolve(pos + 1, par, impar, 1) + (at == 1 ? 0 : 1));
    }
  }
  return x;
}
void solve() {
  memset(dp, -1, sizeof(dp));
  cin >> n;
  long long vet[n + 1];
  for (long long i = 0; i <= n; i++) vet[i] = 0;
  v.resize(n);
  for (long long i = 0; i < n; i++) {
    long long a;
    cin >> a;
    vet[a]++;
    v[i] = a;
  }
  long long par = 0, impar = 0;
  for (long long i = 1; i <= n; i++) {
    if (vet[i] == 0) {
      if (i & 1)
        impar++;
      else
        par++;
    }
  }
  long long resp = INF;
  if (v[0] == 0) {
    if (impar > 0) resp = min(resp, resolve(0, par, impar - 1, 1));
    if (par > 0) resp = min(resp, resolve(0, par - 1, impar, 0));
  } else {
    resp = resolve(0, par, impar, v[0] % 2);
  }
  cout << resp << "\n";
}
signed main() {
  cin.tie(NULL);
  cout.tie(NULL);
  ios_base::sync_with_stdio(false);
  long long t = 1;
  while (t--) {
    solve();
  }
}
