#include<bits/stdc++.h>
#define int long long
#define double long double
#define INF INT_MAX
using namespace std;
const int maxn=3e5+5;
int n,cnt;
int a[maxn];
struct disease{int l,r,sum,ts;}p[maxn];
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
for(int i=1;i<=n;i++){
char x;
cin>>x;
a[i]=x-'0';
}
for(int i=0;i<=n;i++){
if(a[i]==0 && a[i+1]==1) p[++cnt].l=i+1;
else if(a[i]==1 && a[i+1]==0) p[cnt].r=i;
}
int x=INF;
for(int i=1;i<=cnt;i++) {
if(p[i].l==1 && p[i].r==n){
cout<<1<<endl;
return 0;
}
p[i].sum=p[i].r-p[i].l+1;
if(p[i].l==1 || p[i].r==n) p[i].ts=p[i].sum;
else p[i].ts=(p[i].sum+1)/2;
x=min(x,p[i].ts);
}
int ans=0;
for(int i=1;i<=cnt;i++){
if(p[i].l==1 || p[i].r==n){
if(x<=p[i].ts/2) ans+=p[i].sum-2*(x-1);
else ans++;
continue;
}
ans+=abs(p[i].ts-x)*2;
if(p[i].sum%2==0) ans+=2;
else ans++;
}
cout<<ans<<endl;
return 0;
}