import java.util.LinkedList;
import java.util.Scanner;
public class Main
{
static int[][] to = { { -1, -2 }, { -2, -1 }, { -2, 1 }, { -1, 2 },
{ 1, 2 }, { 2, 1 }, { 2, -1 }, { 1, -2 } };
public static void main(String[]args)
{
Scanner in = new Scanner(System.in);
while(in.hasNext())
{
boolean vis[][] = new boolean[9][9];
int time = 0;
String s = in.next();
String e = in.next();
int sx = s.charAt(0) - 'a'+1;
int sy = s.charAt(1) -48;
int ex = e.charAt(0) - 'a'+1;
int ey = e.charAt(1) -48;
point p = new point(sy,sx);
vis[sy][sx] = true;
LinkedList<point> list1 = new LinkedList<point>();
LinkedList<Integer> list2 = new LinkedList<Integer>();
list1.add(p);
list2.add(0);
while(!list1.isEmpty())
{
point p1 = list1.poll();
time = list2.poll();
if(p1.x == ey && p1.y==ex)
break;
for(int i = 0;i<8;i++)
{
int a = p1.x+to[i][0];
int b = p1.y+to[i][1];
if(a>0 && b>0 && a<9 && b<9 && !vis[a][b])
{
point p2 = new point(a,b);
list1.add(p2);
list2.add(time+1);
vis[a][b] = true;
}
}
}
System.out.println("To get from "+s+" to "+e+" takes "+time+" knight moves.");
}
}
}
class point
{
int x;
int y;
point(int a,int b)
{
x = a;
y = b;
}
}
/**************************************************************
Problem: 2124
User: admin
Language: Java
Result: Accepted
Time:1035 ms
Memory:43728 kb
****************************************************************/