#include <iostream>
#include <string>
using namespace std;
int judge(string s,int n){
char a[5]="2012";
bool t=true;
for(int i=0;i<n-3;i++){
for(int j=0;j<4;j++)
t=t && (a[j]==s[i+j]);
if(t==true)
return 1;
else
t=true;
}
return 0;
}
int p=0;
int dfs(string s,int n,int deep,int num){
if(deep==num){
if(judge(s, n)==1){
p=1;
return 0;
} else{
return 0;
}
}
for(int i=0;i<n-1;i++){
string a=s;
char b=a[i];
a[i]=a[i+1];
a[i+1]=b;
dfs(a,n,deep+1,num);
}
return 0;
}
int main() {
int n;
string s;
while (cin >> n){ // 注意 while 处理多个 case
cin>>s;
int j0=0,j1=0,j2=0;
for(int i=0;i<n;i++){
switch (s[i]) {
case '0':j0++;
case '1':j1++;
case '2':j2++;
}
}
if(j0<1 | j1<1 | j2<2) {
cout<< -1 <<endl;
return 0;
}
else
//以num为深度,进行dfs,不需要使用队列
for(int num=0;num!=-1;num++){
dfs(s,n,0,num);
if(p==1){
cout<<num<<endl;
p=0;
return 0;
}
}
}
}