#include <iostream>
#include <vector>
using namespace std;
int traffico(int N, vector<int>S) {
int cambia = 0;
vector<int> ricordaS(N);
vector<int> ricordaS1(N);
vector<int> ricordaS2(N);
for (int i = 0; i < N; i++) {
ricordaS[i] = S[i];
ricordaS1[i] = S[i];
ricordaS2[i] = S[i];
}
for (int i = 1; i < N; i++) {
if (S[i] % 2 == S[i - 1] % 2) {
cambia++;
S[i]++;
}
}
int ricordaicambi = cambia;
cambia = 0;
for (int i = N - 1; i > 0; i--) {
if (ricordaS[i] % 2 == ricordaS[i - 1] % 2) {
cambia++;
ricordaS[i - 1]++;
}
}
if (ricordaicambi <= cambia) {
cambia = ricordaicambi;
}
int ricorda = cambia;
cambia = 0;
for (int i = 2; i < N-1; i++) {
if (ricordaS1[i] % 2 == ricordaS1[i - 1] % 2) {
cambia++;
ricordaS1[i]++;
}
}
if (ricordaS1[0] % 2 == ricordaS1[1] % 2) {
cambia++;
ricordaS1[0]++;
}
if (ricordaS1[N-1] % 2 == ricordaS1[N-2] % 2) {
cambia++;
ricordaS1[N-1]++;
}
int ricorda2 = cambia;
cambia = 0;
for (int i = N - 2; i > 1; i--) {
if (ricordaS2[i] % 2 == ricordaS2[i - 1] % 2) {
cambia++;
ricordaS2[i - 1]++;
}
}
if (ricordaS2[0] % 2 == ricordaS2[1] % 2) {
cambia++;
ricordaS2[0]++;
}
if (ricordaS2[N-1] % 2 == ricordaS2[N-2] % 2) {
cambia++;
ricordaS2[N-1]++;
}
if (ricorda2 <= cambia) {
cambia = ricorda2;
}
if (ricorda <= cambia) {
cambia = ricorda;
}
return cambia;
}
int main() {
int N; cin >> N;
vector<int> S(N);
for (auto &s: S) {
cin >> s;
}
cout << traffico(N, S) << endl;
}