룩 두 개의 체크메이트

아직 제출이 없습니다시간 제한5초메모리 제한128 MB

문제

상근이와 정인이가 체스를 두려고 했는데, 흰색 킹을 잃어버렸다. 그래서 둘은 규칙을 조금 바꾼 체스를 두기로 했다. 상근이에게는 룩(♖) 두 개가 있고, 정인이에게는 킹(♚) 하나만 있다. 지금은 상근이의 차례다.

상근이는 체크메이트를 만들어 이기려 하고, 정인이는 최선을 다해 버틴다. 정인이는 체크메이트를 피할 수 있으면 먼저 피하고, 피할 수 없을 때는 상근이가 말을 움직이는 횟수를 최대한 늘린다. 두 사람이 이렇게 둘 때 상근이가 이기는 데 필요한 최소 이동 횟수를 구하여라.

규칙은 다음과 같다.

  1. 이런 상황은 실제 체스에서는 나올 수 없다. 그 점만 빼면 나머지는 모두 체스 규칙을 따른다.
  2. 체스판은 8×88 \times 8이고, 가로줄은 1부터 8까지의 숫자로, 세로줄은 a부터 h까지의 알파벳으로 나타낸다. 예를 들어 c7은 세로줄 c와 가로줄 7이 만나는 칸이다.
  3. 이 문제에서는 상근이(백)가 말을 움직인 횟수만 센다.
  4. 룩은 가로와 세로로 몇 칸이든 움직인다. 다른 룩이나 킹이 놓인 칸은 넘어갈 수 없고, 다른 룩이 있는 칸에 멈출 수도 없다.
  5. 체크는 백 룩이 킹을 잡을 수 있는 위치에 놓인 상태를 말한다.
  6. 킹은 여덟 방향으로 한 칸씩 움직인다. 단, 움직인 뒤에 잡히는 칸으로는 갈 수 없다. 룩이 놓인 칸으로 가서 그 룩을 잡을 수도 있지만, 남은 룩이 그 칸을 노리고 있으면 잡지 못한다.
  7. 체크메이트는 킹이 체크를 당한 상태에서 둘 수 있는 수가 하나도 없는 상황이다. 이때 상근이가 이긴다.
  8. 스테일메이트는 킹이 체크를 당하지 않았는데도 둘 수 있는 수가 하나도 없는 상황이다. 이때는 무승부다.
  9. 룩 하나만으로는 킹을 체크메이트할 수 없다. 그래서 정인이가 룩을 잡으면 상근이는 이기지 못한다.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다.

각 테스트 케이스는 한 줄로 이루어진다. 정인이의 킹 위치와 상근이의 두 룩 위치가 공백으로 구분되어 차례대로 주어진다. 위치는 세로줄을 나타내는 a부터 h까지의 소문자 하나와 가로줄을 나타내는 1부터 8까지의 숫자 하나를 붙여 쓴 형태다.

같은 칸에 놓인 말은 없다. 또 정인이의 킹이 처음부터 체크를 당한 상황은 주어지지 않는다.

출력

각 테스트 케이스마다 상근이가 이기는 데 필요한 최소 이동 횟수를 한 줄에 하나씩 출력한다. 상근이가 이길 수 없으면 0을 출력한다.