#include<bits/stdc++.h>
using namespace std;
string start;
long long bfs(string st){
string end = "123804765";
queue<string> q;
unordered_map<string,long long> d;
q.push(start);
d[start] = 0;
while(!q.empty()){
string t=q.front();
q.pop();
long long dist = d[t];
if(t == end) return dist;
long long k=t.find('x');
long long x = k/3,y = k%3;
long long dx[4] = {0,1,0,-1},dy[4] ={1,0,-1,0};
for(long long i=0;i<4;i++){
long long a= x+dx[i],b= y+dy[i];
if(a>=0 && a<3 && b>=0 && b<3){
swap(t[a*3+b],t[k]);
if(!d.count(t)){
d[t] = dist+1;
q.push(t);
}
swap(t[a*3+b],t[k]);
}
}
}
return -1;
}
int main(){
cin>>start;
cout<<bfs(start);
}