#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;
                }
            }
        }
}