#include<iostream>

#include<queue>

#include<string>

#include<unordered_map>

using namespace std;

int main(){

int n;

while(cin>>n){

string str;

char strarr[20];

for(int i=0;i<n;i++){

cin>>strarr[i];

}

queue<string>tovisited;

str=strarr;

tovisited.push(str);

unordered_map<string,int>distancemap;

distancemap.insert({str,0});

while(!tovisited.empty()){

string current=tovisited.front();

if(current.find("2012")!=string::npos){

cout<<distancemap[current]<<endl;//直接通过已知的 key,快速获取对应的 value

return 0;

}

tovisited.pop();

for(int i=1;i<n;i++){

string next=current;

char temp=next[i];

next[i]=next[i-1];

next[i-1]=temp;

if(distancemap.count(next)==0){

tovisited.push(next);

distancemap.insert({next,distancemap[current]+1});

}

}

}

if(tovisited.empty()==true){

cout<<"-1"<<endl;

}

}

}