#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
const long long INF = 2e9;
const long long mod = 998244353;
const double pi = 3.1415926536;
int n, arr[106], dp[106][106][106][2];
bool vis[106];
int solve(int idx, int even, int odd, bool prev) {
  if (idx == n) return 0;
  if (dp[idx][even][odd][prev] != -1) return dp[idx][even][odd][prev];
  int res = 1e9;
  if (arr[idx])
    res = solve(idx + 1, even, odd, arr[idx] % 2) +
          (idx == 0 ? 0 : (prev != arr[idx] % 2));
  else {
    if (even)
      res = min(
          res, solve(idx + 1, even - 1, odd, 0) + (idx == 0 ? 0 : (prev != 0)));
    if (odd)
      res = min(res,
                solve(idx + 1, even, odd - 1, 1) + (idx == 0 ? 0 : prev != 1));
  }
  return dp[idx][even][odd][prev] = res;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  int even = 0, odd = 0;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
    vis[arr[i]] = 1;
  }
  for (int i = 1; i <= n; i++) {
    if (!vis[i]) {
      if (i % 2 == 0)
        even++;
      else
        odd++;
    }
  }
  memset(dp, -1, sizeof dp);
  cout << solve(0, even, odd, 0);
  return 0;
}
