#include<bits/stdc++.h>
using namespace std;
int l;
string s;
int n;
int y;
int find(int l,int r){
if(r-l+1==3){
int a=0,b=0;
for(int i=l;i<=r;i++){
if(s[i]=='0'){
a++;
}
else{
b++;
}
}
if(a==3){
y=0;
return 2;
}
else if(a==2){
y=0;
return 1;
}
else if(b==2){
y=1;
return 1;
}
else{
y=1;
return 2;
}
}
int mid=(r-l+1)/3;
int e[3];
e[0]=find(l,l+mid-1);
int p[3];
p[0]=y;
e[1]=find(l+mid,l+2*mid-1);
p[1]=y;
e[2]=find(l+2*mid,r);
p[2]=y;
int L=0,R=0;
for(int i=0;i<3;i++){
if(!p[i]){
L++;
}
else{
R++;
}
}
if(L==2){
y=0;
int mn=1e9;
for(int i=0;i<3;i++){
if(!p[i]){
mn=min(mn,e[i]);
}
}
return mn;
}
else if(R==2){
y=1;
int mn=1e9;
for(int i=0;i<3;i++){
if(p[i]){
mn=min(mn,e[i]);
}
}
return mn;
}
else if(L==3){
y=0;
int mn1=1e9,mn2=1e9;
for(int i=0;i<3;i++){
if(!p[i]){
if(mn1!=1e9){
mn2=min(mn2,mn1);
}
mn1=min(mn1,e[i]);
}
}
return mn1+mn2;
}
else if(R==3){
y=1;
int mn1=1e9,mn2=1e9;
for(int i=0;i<3;i++){
if(p[i]){
if(mn1!=1e9){
mn2=min(mn2,mn1);
}
mn1=min(mn1,e[i]);
}
}
return mn1+mn2;
}
}
int main(){
cin>>n;
cin>>s;
l=s.size();
int kk=find(0,l-1);
cout<<kk;
return 0;
}