#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
long long n, e, o;
vector<long long> a(105), ar(105);
bool vis[105];
long long dp[105][105][3];
long long fun(long long idx, long long even, long long odd, long long last) {
  if (idx > n) return 0;
  long long &ret = dp[idx][odd][last];
  if (ret != -1) return ret;
  ret = 1e9;
  if (a[idx] > 0)
    ret = fun(idx + 1, even, odd, a[idx] % 2) + (last != (a[idx] % 2));
  else {
    if (even > 0) ret = fun(idx + 1, even - 1, odd, 0) + (last == 1);
    if (odd > 0) ret = min(ret, fun(idx + 1, even, odd - 1, 1) + (last == 0));
  }
  return ret;
}
inline void solve() {
  cin >> n;
  for (long long i = 1; i <= n; i++) {
    cin >> a[i];
    vis[a[i]] = true;
  }
  memset(dp, -1, sizeof(dp));
  for (long long i = 1; i <= n; i++)
    if (!vis[i]) {
      if (i & 1)
        o++;
      else
        e++;
    }
  long long ans = fun(1, e, o, 0);
  ans = min(ans, fun(1, e, o, 1));
  cout << ans << '\n';
}
signed main() {
  long long n = 1;
  while (n--) solve();
  return 0;
}
