하바나 승리 구조 판정
시간 제한5초메모리 제한512 MB
육각 보드에서 순서대로 돌을 놓을 때 두 모서리 연결, 세 변 연결, 빈 칸 포위 중 처음 완성한 구조와 수를 판정합니다.
문제
하바나(Havannah)는 크리스티안 프렐링이 만든 추상 전략 보드게임이다. 판은 한 변에 육각형 칸이 개씩 놓인 큰 육각형이고, 각 칸은 수평인 변 두 개와 기울어진 변 네 개로 이루어진다. 칸은 정수 두 개의 쌍으로 나타낸다. 판의 맨 아래 꼭짓점 칸이 이다. 칸 에서 2시 방향으로 이웃한 칸은 , 10시 방향으로 이웃한 칸은 이다. 다음은 인 판의 예이다.

따라서 판 위의 칸은 , , 을 모두 만족하는 이다. 꼭짓점 칸은 , , , , , 여섯 개이다. 변에 놓인 칸은 , , , , , 가운데 하나를 만족하는 칸에서 꼭짓점을 뺀 것이고, 여섯 변에는 각각 칸이 개씩 있다.
각 칸에는 돌을 최대 한 개까지 놓을 수 있다. 한 번 놓은 돌은 치우거나 옮기지 않는다. 목표는 다음 세 가지 승리 구조 가운데 하나를 이루는 연결된 돌 집합을 만드는 것이다.
- 링: 빈 칸을 하나 이상 둘러싼 고리. 둘러싸인 칸 가운데 적어도 하나는 비어 있어야 한다. 더 정확히 말하면, 돌이 놓인 칸에 가로막혀 판의 가장 바깥 경계에 닿을 수 없는 빈 칸이 있어야 한다. 이 규칙은 실제 하바나 게임의 규칙과 다르다.
- 브리지: 판의 꼭짓점 두 개를 잇는 연결.
- 포크: 판의 여섯 변 가운데 세 개를 잇는 연결. 꼭짓점은 양옆 어느 변에도 속하지 않는다.
다음 그림은 승리 구조의 예이다.

한 사람이 돌을 놓는 순서가 주어진다. 이 순서가 승리 구조를 만드는지 판정하고, 만든다면 구조의 이름과 그 구조를 완성한 수의 번호를 출력한다. 한 수가 링을 여러 개 완성하거나, 꼭짓점을 셋 이상 잇거나, 변을 넷 이상 이어도 각각 링 하나, 브리지 하나, 포크 하나로 센다. 한 수가 서로 다른 종류의 구조를 동시에 완성하면 이름을 모두 출력한다. 처음으로 이기는 수만 보고 그 뒤의 수는 모두 무시한다. 주어진 수를 모두 놓은 뒤에도 승리 구조가 없으면 none을 출력한다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 판 한 변의 칸 수 와 놓는 수의 개수 이 공백을 사이에 두고 주어진다. 다음 개의 줄에는 돌을 놓는 순서대로 칸의 좌표 와 가 공백을 사이에 두고 주어진다. 모든 수는 크기가 인 판 안의 칸이다. 각 테스트 케이스에서 판은 비어 있는 상태로 시작하고, 같은 칸에 두 번 놓지 않는다.
제한
출력
각 테스트 케이스마다 Case #n: 뒤에 다음 가운데 하나를 이어 붙여 한 줄에 출력한다.
nonebridge in move kfork in move kring in move kbridge-fork in move kbridge-ring in move kfork-ring in move kbridge-fork-ring in move k
은 테스트 케이스 번호로 1부터 세고, 는 승리 구조를 완성한 수의 번호로 1부터 센다. 이름이 여러 개일 때는 bridge, fork, ring 순서로 하이픈을 넣어 이어 붙인다.
힌트
하바나는 크리스티안 프렐링과 MindSports가 만든 게임이다. MindSports와 크리스티안 프렐링은 이 문제를 보증하지 않으며 이 문제와 아무 관련이 없다.