\documentclass{maratona}

\begin{document}
\begin{ProblemaAutor}{}{Movimento do Cavalo}{1}{256}{Spoj NAKANJ - Minimum Knight moves}

Anjali e Nakul são grandes amigos, mas recentemente tiveram uma briga enquanto jogavam xadrez.  
Nakul, que é excelente em programação, escreveu um programa para descobrir o número mínimo de movimentos que um cavalo precisa para ir de uma casa a outra no tabuleiro ($8 \times 8$).  
Agora ele quer saber se Anjali consegue fazer o mesmo.

Um cavalo se move em formato de “L”: dois quadrados em uma direção (horizontal ou vertical) e depois um quadrado em direção perpendicular.  
Um movimento é válido apenas se o cavalo permanecer dentro dos limites do tabuleiro.

Sua tarefa é ajudar Anjali a determinar o número mínimo de movimentos necessários para o cavalo ir de uma posição inicial até uma posição de destino.

\begin{figure}[h]
    \centering
    \includegraphics[width=0.4\textwidth]{knight-moves.png}
    \caption{Movimentos possíveis de um cavalo no tabuleiro.}
\end{figure}

\Entrada

A primeira linha contém um inteiro $T$ ($1 \leq T \leq 100$), o número de casos de teste.  
Cada uma das próximas $T$ linhas contém duas strings — \texttt{inicio} e \texttt{destino} — separadas por um espaço.  

Cada string representa uma casa válida do tabuleiro:  
o primeiro caractere é uma letra de `a' a `h', e o segundo é um dígito de `1' a `8'.

\Saida

Para cada caso de teste, imprima o número mínimo de movimentos necessários para o cavalo alcançar o destino a partir da posição inicial.

\ExemploEntrada
\begin{Exemplo}
\texttt{3} & \texttt{6}\\
\texttt{a1~h8} & \texttt{1}\\
\texttt{a1~c2} & \texttt{4}\\
\texttt{h8~c3} & \\
\rowcolor{gray!20}\texttt{1} & \texttt{0}\\
\rowcolor{gray!20}\texttt{a1~a1} & \\
\end{Exemplo}



\end{ProblemaAutor}
\end{document}
