#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int p[10000005],answer;
void add() {
for(int i=0; i<s1.length(); i++)
s2+='#',s2+=s1[i];
s2+='#',s2+='$';
}
void manacher() {
int r=0,mid=0;
for(int i=0; i<s2.size(); i++) {
if(i<r) p[i]=min(r-i,p[2*mid-i]);
else p[i]=1;
while((s2[i+p[i]]=='1'&&s2[i-p[i]]=='0')or(s2[i+p[i]]=='0'&&s2[i-p[i]]=='1')or(s2[i+p[i]]=='#' and s2[i-p[i]]=='#')){
p[i]++;
}
if(i+p[i]>r)r=i+p[i],mid=i;
}
}
int n;
signed main() {
cin>>n>>s1;
add();
manacher();
for(int i=0;i<s2.size();i++)cout<<s2[i]<<" ";
/*
cout<<"\n";
for(int i=0;i<s2.size();i++)cout<<p[i]<<" ";
cout<<"\n";
*/
for(int i=0; i<s2.size(); i++){
if(s2[i]=='1'||s2[i]=='0'){
cout<<p[i]/2-1<<" ";
answer+=p[i]/2-1;
}
if(s2[i]=='#'){
// cout<<(p[i]-1)/2<<" ";
answer+=(p[i]-1)/2;
}
}
//cout<<"\n";
cout<<answer-1;
return 0;
}