#include<iostream>
#include<queue>
#include<string>
using namespace std;
struct jg//构建结构体
{
string str;
int count;
jg(string s,int c):str(s),count(c){}
};
int bfs(string s,int n)
{
queue<jg> q;
jg first(s,0);//初始状态
q.push(first);//压入初始状态
while(!q.empty())//进入循环
{
jg current=q.front();//固定步骤
q.pop();//
if(current.str.find("2012")!=string::npos)//判断是否查找成功
{
return current.count;
}
for(int i=0;i<n-1;i++)//转移到新状态
{
string s=current.str;
swap(s[i],s[i+1]);
jg next(s,current.count+1);
q.push(next);
swap(s[i],s[i+1]);//别忘了再交换回来
}
}
return -1;
}
int main()
{
string str;
int n;//string长度
while(cin>>n>>str)
{
int ans=bfs(str,n);
cout<<ans<<endl;
}
return 0;
}