#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[300005];
int con[300005];
signed main() {
int n; cin >> n;
for(int i = 1;i <= n;i++) {
scanf("%01lld",&a[i]);
}
int cur = 0,minn = 0x7fffffff,now = 0;
for(int i = 1;i <= n;i++) {
if(a[i] == 1) {
now++;
}
else {
if(now == 0) continue;
minn = min(minn,now);
con[++cur] = now;
now = 0;
}
}
if(now) {
minn = min(minn,now);
con[++cur] = now;
}
if(cur == 1) {
cout << (con[1]%2?1:2) << endl;
return 0;
}
int night_num = 0x7fffffff;
for(int i = 2;i <= cur-1;i++) {
night_num = min(night_num,((con[i]-(con[i]%2?1:2))/2));
}
if(a[1]) {
night_num = min(night_num,con[1] - 1);
}
else night_num = min(night_num,((con[1]-(con[1]%2?1:2))/2));
if(a[n]) {
night_num = min(night_num,con[cur]-1);
}
else night_num = min(night_num,((con[cur]-(con[cur]%2?1:2))/2));
int ans = 0;
for(int i = 1;i <= cur;i++) {
if(i == 1 && a[1] == 1) {
if((con[i] - night_num*2) > 0) ans += min(con[i] - night_num,con[i] - night_num*2);
else ans += con[i] - night_num;
}
else if(i == cur && a[n] == 1) {
if((con[i] - night_num*2) > 0) ans += min(con[i] - night_num,con[i] - night_num*2);
else ans += con[i] - night_num;
}
else ans += (con[i] - night_num*2);
}
cout << ans << endl;
return 0;
}