#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n ; cin>>n;
string s; cin>>s;
vector<int>prefix(n);
int cost = n ;
for(int i = 0 ; i<n;i++){
if(i==0){
if(s[i]=='b'){
prefix[i]=1;
}
else{
prefix[i]=0;
}
}
else{
if(s[i]=='b'){
prefix[i]=prefix[i-1]+1;
}
else{
prefix[i]=prefix[i-1];
}
}
}
for(int i = 0 ; i<n;i++){
cout<<prefix[i]<<" ";
}
vector<int>suffix(n);
for(int i = n-1;i>=0;i--){
if(i==n-1){
if(s[i]=='a'){
suffix[i]=1;
}
else{
suffix[i]=0;
}
}
else{
if(s[i]=='a'){
suffix[i]=suffix[i+1]+1;
}
else{
suffix[i]=suffix[i+1];
}
}
}
cout<<"\n";
for(int i = 0 ; i<n;i++){
cout<<suffix[i]<<" ";
}
for(int i = 0 ; i<n;i++){
if(i==0){
cost = suffix[i];
}
else if(i==n-1){
cost = min(cost , prefix[i]);
}
else{
cost = min(cost , prefix[i]+suffix[i+1]);
}
}
vector<int>prefix2(n);
for(int i = 0 ; i<n;i++){
if(i==0){
if(s[i]=='a'){
prefix2[i]=1;
}
else{
prefix2[i]=0;
}
}
else{
if(s[i]=='a'){
prefix2[i]=prefix2[i-1]+1;
}
else{
prefix2[i]=prefix2[i-1];
}
}
}
vector<int>suffix2(n);
for(int i = n-1;i>=0;i--){
if(i==n-1){
if(s[i]=='b'){
suffix2[i]=1;
}
else{
suffix2[i]=0;
}
}
else{
if(s[i]=='b'){
suffix2[i]=suffix2[i+1]+1;
}
else{
suffix2[i]=suffix2[i+1];
}
}
}
for(int i = 0 ; i<n;i++){
if(i==0){
cost = min(cost,suffix2[i]);
}
else if(i==n-1){
cost = min(cost , prefix2[i]);
}
else{
cost = min(cost , prefix2[i]+suffix2[i+1]);
}
}
cout<<"\n"<<cost;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJaW50IG4gOyBjaW4+Pm47CglzdHJpbmcgczsgY2luPj5zOwoJdmVjdG9yPGludD5wcmVmaXgobik7CglpbnQgY29zdCA9IG4gOyAKCQoJZm9yKGludCBpID0gMCA7IGk8bjtpKyspewoJCWlmKGk9PTApewoJCQlpZihzW2ldPT0nYicpewoJCQlwcmVmaXhbaV09MTsKCQkgICB9CgkJICAgZWxzZXsKCQkgICAJcHJlZml4W2ldPTA7CgkJICAgfQoJCQkKCQl9CgkJZWxzZXsKCQkJaWYoc1tpXT09J2InKXsKCQkJcHJlZml4W2ldPXByZWZpeFtpLTFdKzE7CgkJfQoJICAgIGVsc2V7CgkJCXByZWZpeFtpXT1wcmVmaXhbaS0xXTsKCQl9CgkJCQoJCX0KCQoJfQoJZm9yKGludCBpID0gMCA7IGk8bjtpKyspewoJCWNvdXQ8PHByZWZpeFtpXTw8IiAiOwoJfQoJdmVjdG9yPGludD5zdWZmaXgobik7CgkKCWZvcihpbnQgaSA9IG4tMTtpPj0wO2ktLSl7CgkJaWYoaT09bi0xKXsKCQkJaWYoc1tpXT09J2EnKXsKCQkJc3VmZml4W2ldPTE7CgkJICAgfQoJCSAgIGVsc2V7CgkJICAgCXN1ZmZpeFtpXT0wOwoJCSAgIH0KCQkJCgkJfQoJCWVsc2V7CgkJCWlmKHNbaV09PSdhJyl7CgkJCXN1ZmZpeFtpXT1zdWZmaXhbaSsxXSsxOwoJCX0KCQllbHNlewoJCQlzdWZmaXhbaV09c3VmZml4W2krMV07CgkJfQoJCQkKCQl9CgkKCX0KCWNvdXQ8PCJcbiI7Cglmb3IoaW50IGkgPSAwIDsgaTxuO2krKyl7CgkJY291dDw8c3VmZml4W2ldPDwiICI7Cgl9Cglmb3IoaW50IGkgPSAwIDsgaTxuO2krKyl7CgkJaWYoaT09MCl7CgkJCWNvc3QgPSBzdWZmaXhbaV07CgkJfQoJCWVsc2UgaWYoaT09bi0xKXsKCQkJY29zdCA9IG1pbihjb3N0ICwgcHJlZml4W2ldKTsKCQl9CgkJZWxzZXsKCQkJY29zdCA9IG1pbihjb3N0ICwgcHJlZml4W2ldK3N1ZmZpeFtpKzFdKTsKCQl9CgkJCgl9Cgl2ZWN0b3I8aW50PnByZWZpeDIobik7Cglmb3IoaW50IGkgPSAwIDsgaTxuO2krKyl7CgkJaWYoaT09MCl7CgkJCWlmKHNbaV09PSdhJyl7CgkJCXByZWZpeDJbaV09MTsKCQkgICB9CgkJICAgZWxzZXsKCQkgICAJcHJlZml4MltpXT0wOwoJCSAgIH0KCQkJCgkJfQoJCWVsc2V7CgkJCWlmKHNbaV09PSdhJyl7CgkJCXByZWZpeDJbaV09cHJlZml4MltpLTFdKzE7CgkJfQoJICAgIGVsc2V7CgkJCXByZWZpeDJbaV09cHJlZml4MltpLTFdOwoJCX0KCQkJCgkJfQoJCgl9Cgl2ZWN0b3I8aW50PnN1ZmZpeDIobik7CgkKCWZvcihpbnQgaSA9IG4tMTtpPj0wO2ktLSl7CgkJaWYoaT09bi0xKXsKCQkJaWYoc1tpXT09J2InKXsKCQkJc3VmZml4MltpXT0xOwoJCSAgIH0KCQkgICBlbHNlewoJCSAgIAlzdWZmaXgyW2ldPTA7CgkJICAgfQoJCQkKCQl9CgkJZWxzZXsKCQkJaWYoc1tpXT09J2InKXsKCQkJc3VmZml4MltpXT1zdWZmaXgyW2krMV0rMTsKCQl9CgkJZWxzZXsKCQkJc3VmZml4MltpXT1zdWZmaXgyW2krMV07CgkJfQoJCQkKCQl9CgkKCX0KCWZvcihpbnQgaSA9IDAgOyBpPG47aSsrKXsKCQlpZihpPT0wKXsKCQkJY29zdCA9IG1pbihjb3N0LHN1ZmZpeDJbaV0pOwoJCX0KCQllbHNlIGlmKGk9PW4tMSl7CgkJCWNvc3QgPSBtaW4oY29zdCAsIHByZWZpeDJbaV0pOwoJCX0KCQllbHNlewoJCQljb3N0ID0gbWluKGNvc3QgLCBwcmVmaXgyW2ldK3N1ZmZpeDJbaSsxXSk7CgkJfQoJCQoJfQoJCgljb3V0PDwiXG4iPDxjb3N0OwoJcmV0dXJuIDA7Cgp9