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
****************************************************************/