在国际象棋中,骑士(Knight)是所有棋子中最奇特的一个。首先,这个棋子实际上是一匹没有骑手的马。其次是它的移动方式。它可以向前移动 2 格,然后向侧面移动 1 格。在下方你可以看到骑士所有可能的移动目的地。
由于其移动方式如此奇特,要确定两个棋盘方格之间的最短路径是件很复杂的事情。你能写一个程序,计算将骑士从一个方格移动到另一个方格所需的最少移动次数吗?请记住,棋盘有 8 行和 8 列。此外,在标准记谱法中,列用字母 a 到 h 表示。
输入格式
输入将包含 2 行。第一行是骑士的起始位置,第二行指定其终点位置。
输出格式
输出一个整数,表示骑士从棋盘上的起始位置移动到终点位置所需的最少移动次数。
样例
输入样例 1
h1 a8
输出样例 1
6
输入样例 2
b1 b1
输出样例 2
0
输入样例 3
e2 e4
输出样例 3
2