#include<stdio.h>
int n;
char a[300009];
int d[300009][2];
int maxx(int p,int q){
return p<q?q:p;
}
int main(){
int i,j,k;
scanf("%d",&n);
scanf("%s",&a[1]);
printf("%s\n",&a[1]);
for(i=1;i<=n;i++){
if(a[i]=='1'){
d[i][0]=maxx(d[i-1][0],d[i-1][1]);
d[i][1]=d[i-1][0]+1;
}
else if(a[i]=='0'){
d[i][0]=maxx(d[i-1][0],d[i-1][1]);
d[i][1]=-1000000;
}else{
d[i][0]=-1000000;
d[i][1]=d[i-1][0];
}
printf("%d : %d %d\n",i,d[i][0],d[i][1]);
}
int res=maxx(d[n][0],d[n][1]);
res=maxx(res,0);
printf("%d",res);
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IG47CmNoYXIgYVszMDAwMDldOwppbnQgZFszMDAwMDldWzJdOwppbnQgbWF4eChpbnQgcCxpbnQgcSl7CiAgICByZXR1cm4gcDxxP3E6cDsKfQppbnQgbWFpbigpewogICAgaW50IGksaixrOwogICAgc2NhbmYoIiVkIiwmbik7CiAgICBzY2FuZigiJXMiLCZhWzFdKTsKcHJpbnRmKCIlc1xuIiwmYVsxXSk7CiAgICBmb3IoaT0xO2k8PW47aSsrKXsKICAgICAgICBpZihhW2ldPT0nMScpewogICAgICAgICAgICBkW2ldWzBdPW1heHgoZFtpLTFdWzBdLGRbaS0xXVsxXSk7CiAgICAgICAgICAgIGRbaV1bMV09ZFtpLTFdWzBdKzE7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoYVtpXT09JzAnKXsKICAgICAgICAgICAgZFtpXVswXT1tYXh4KGRbaS0xXVswXSxkW2ktMV1bMV0pOwogICAgICAgICAgICBkW2ldWzFdPS0xMDAwMDAwOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBkW2ldWzBdPS0xMDAwMDAwOwogICAgICAgICAgICBkW2ldWzFdPWRbaS0xXVswXTsKICAgICAgICB9CnByaW50ZigiJWQgOiAlZCAlZFxuIixpLGRbaV1bMF0sZFtpXVsxXSk7CiAgICB9CiAgICBpbnQgcmVzPW1heHgoZFtuXVswXSxkW25dWzFdKTsKICAgIHJlcz1tYXh4KHJlcywwKTsKICAgIHByaW50ZigiJWQiLHJlcyk7Cn0=