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