import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
public class P1379 {
static String swap(String t,int a,int b) {
char s[]=t.toCharArray();
char p=s[a];
s[a]=s[b];
s[b]=p;
return String.valueOf(s);
}
static int bfs(String start) {
Map<String,Integer> dis=new HashMap<>();
Queue<String> q=new LinkedList<>();
String end="123804765";
q.add(start);
dis.put(start, 0);
int dx[]= {0,-1,0,1},dy[]= {1,0,-1,0};
while(!q.isEmpty()) {
String t=q.poll();
int distance=dis.get(t);
if(t.equals(end)) return distance;
int size=t.indexOf('0');
int x=size/3,y=size%3;
for(int i=0;i<4;i++) {
int a=x+dx[i],b=y+dy[i];
if(a>=0&&a<3&&b>=0&&b<3) {
t=swap(t,size,a*3+b);
if(dis.get(t)==null) {
q.add(t);
dis.put(t, distance+1);
}
t=swap(t,size,a*3+b);
}
}
}
return -1;
}
public static void main(String[]agrs) throws IOException {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String start=bf.readLine();
System.out.println(bfs(start));
}
}