원숭이와 멍멍이가 보드게임을 한다. 보드에는 알파벳 소문자로 이름 붙은 n개 위치가 있고, 게임말로 현재 위치를 표시한다. 매 라운드는 두 단계다.
시작 전 원숭이는 끝 위치, 멍멍이는 시작 위치를 각각 정한다. 원숭이는 게임말이 끝 위치에 도달하면 승리한다. 매 라운드 끝에 원숭이가 멍멍이에게 돈을 주므로, 원숭이가 이기지 못하면 패가망신한다.
둘 모두 최적 전략으로 플레이할 때, 모든 시작 위치 p와 끝 위치 q에 대해 원숭이가 이기는 최소 라운드 수를 구한다. 이길 수 없으면 −1이다.
첫 줄에 위치 개수 n (1≤n≤25)이 주어진다. 위치 이름은 알파벳 소문자 앞 n개를 사용한다.
다음 n줄은 위치 순서대로 정보가 주어진다. 각 줄은 선택지 개수 m (1≤m<2n)과 m개의 문자열로 이루어진다. 문자열은 선택지를 나타내고, 멍멍이가 고를 수 있는 위치들을 알파벳 순으로 담는다.
위치 순서대로 n줄을 출력한다. i번째 줄에는 시작 위치 i에서 끝 위치 j로 이기는 최소 라운드 수를 공백으로 구분하여 출력한다. 이길 수 없으면 −1을 출력한다.