#include<queue>
#include<map>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int p;
string s="";
queue<pair<string,int> > q;
void f(int a,int b){
  char c;
  c=s[a];
  s[a]=s[b];
  s[b]=c;
  q.push(make_pair(s,p+1));
  c=s[a];
  s[a]=s[b];
  s[b]=c;
  return;
}
void g(){
  if(s[0]==0){
    f(0,2);
  }
  if(s[1]==0){
    f(1,2);
    f(1,5);
  }
  if(s[2]==0){
    f(2,0);
    f(2,1);
    f(2,3);
    f(2,6);
  }
  if(s[3]==0){
    f(3,2);
    f(3,7);
  }
  if(s[4]==0){
    f(4,5);
  }
  if(s[5]==0){
    f(5,1);
    f(5,4);
    f(5,6);
    f(5,9);
  }
  if(s[6]==0){
    f(6,2);
    f(6,5);
    f(6,7);
    f(6,10);
  }
  if(s[7]==0){
    f(7,3);
    f(7,6);
    f(7,8);
    f(7,11);
  }
  if(s[8]==0){
    f(8,7);
  }
  if(s[9]==0){
    f(9,5);
    f(9,10);
  }
  if(s[10]==0){
    f(10,6);
    f(10,9);
    f(10,11);
    f(10,12);
  }
  if(s[11]==0){
    f(11,7);
    f(11,10);
  }
  if(s[12]==0){
    f(12,10);
  }
  return;
}
int main(){
  int i;
  int a;
  int mn;
  map<string,int> m,n;
  for(i=0;i<12;i++)
    s+=i;
  s+=(char)0;
  q.push(make_pair(s,1));
  for(;;){
    s=q.front().first;
    p=q.front().second;
    q.pop();
    if(p>11)
      break;
    if(m[s]==0){
      m[s]=p;
      g();
    }
  }
  while(cin>>a&&a!=-1){
    s="";
    s+=a;
    for(i=0;i<12;i++){
      cin>>a;
      s+=a;
    }
    if(m[s])
      cout<<m[s]-1<<endl;
    else{
      mn=21;
      while(q.empty()==0)
	q.pop();
      q.push(make_pair(s,1));
      n.clear();
      for(;;){
	s=q.front().first;
	p=q.front().second;
	q.pop();
	if(p>11)
	  break;
	if(m[s]&&mn>m[s]+p-2)
	  mn=m[s]+p-2;
	if(n[s]==0){
	  n[s]=p;
	  g();
	}
      }
      if(mn==21)
	cout<<"NA"<<endl;
      else
	cout<<mn<<endl;
    }
  }
  return 0;
}