원과 구슬
시간 제한1초메모리 제한256 MB
매 차례 화살표를 따라 구슬 하나를 다음 원으로 옮기고, 양쪽이 최선을 다할 때 선공과 후공 중 이기는 쪽을 고릅니다.
문제
아디는 푸트리와 오랫동안 사귀었고, 이제 청혼하려 한다. 푸트리는 순순히 대답하는 대신 게임을 하자고 했다. 아디가 이기면 결혼하겠다는 것이다.
푸트리는 먼저 원을 하나 그리고 그 안에 구슬을 몇 개 넣었다. 이어서 원을 하나 더 그려 구슬을 넣고, 앞서 그린 원에서 새 원으로 향하는 화살표를 하나 그렸다. 그다음에도 원을 하나 그려 구슬을 넣고, 이미 그려 둔 원 가운데 하나에서 새 원으로 향하는 화살표를 그렸다. 이 과정을 되풀이해 원 개를 그렸다. 구슬이 하나도 없는 원도 있을 수 있다. 원끼리 겹치거나 한 원이 다른 원을 품는 일은 없다.
두 사람은 번갈아 한 번씩 둔다. 자기 차례에는 원 하나를 고른 다음, 고른 원에서 구슬을 정확히 하나 꺼내 그 원에서 출발하는 화살표가 가리키는 원 가운데 하나로 옮긴다. 더 이상 둘 수 없는 사람이 진다.
나가는 화살표가 없는 원은 고를 수 없다. 구슬을 다른 원으로 옮기는 것이 의무라서, 구슬이 빠져나갈 곳이 없는 원은 선택 대상이 아니다. 구슬이 하나도 없는 원도 고를 수 없다. 이 규칙은 두 사람에게 똑같이 적용된다.
두 사람이 모두 최선으로 두면 승패는 처음 배치만으로 정해진다. 푸트리는 선공과 후공을 아디가 고르게 해 주었다. 처음 배치가 주어질 때, 아디가 이기려면 선공을 잡아야 하는지 후공을 잡아야 하는지 구하라. 푸트리는 최선으로 두므로 이길 기회가 보이면 반드시 이긴다.
입력
첫째 줄에 테스트 케이스의 수 가 주어진다. ()
각 테스트 케이스의 첫째 줄에는 푸트리가 그린 원의 개수 이 주어진다. () 원의 번호는 그린 순서대로 번부터 번까지이다.
둘째 줄에는 정수 개 이 주어진다. 는 번 원에 들어 있는 구슬의 개수이다. ()
셋째 줄에는 정수 개 이 주어진다. 는 번 원을 가리키는 화살표가 출발하는 원의 번호이다. () 번 원은 가장 먼저 그린 원이라 가리키는 화살표가 없고, 그래서 은 항상 이다.
출력
각 테스트 케이스마다 한 줄에 Case #X: Y 형식으로 출력한다. 는 부터 시작하는 테스트 케이스 번호이고, 그 뒤에 공백 하나를 둔다. 는 아디가 선공으로 두어야 이기면 first, 후공으로 두어야 이기면 second이다.
힌트
설명에 쓸 표기를 정한다.
- move(a, b)는 번 원에서 구슬 하나를 꺼내 번 원으로 옮기는 수를 뜻한다.
- 은 번, 번, 번 원에 들어 있는 구슬의 개수를 차례로 적은 것이다.
예제 입력의 첫 번째 케이스에서는 선공이 move(2, 3)을 두어 을 만든다. 후공은 move(1, 2) 말고 둘 수가 없어 이 된다. 선공이 다시 move(2, 3)을 두어 를 만들면 후공은 둘 곳이 없다.
두 번째 케이스에서는 선공이 무엇을 두어도 진다. 선공이 둘 수 있는 수는 두 가지이다.
- move(1, 2)를 두면 가 된다. 그 뒤로 두 사람은 번 원의 구슬을 번 원으로 번갈아 옮기게 되고, 후공이 이긴다.
- move(2, 3)을 두면 이 된다. 후공이 move(2, 3)으로 받아 를 만들면 선공은 move(1, 2)밖에 없고, 후공이 move(2, 3)으로 게임을 끝낸다.
그러므로 이 배치에서 아디는 후공을 잡아야 이긴다.
세 번째 케이스에서는 선공이 move(1, 2)를 두어 을 만든다. 후공은 move(3, 4) 말고 둘 수가 없어 가 된다. 선공이 번 원에 남은 구슬 하나를 번 원으로 옮기면 후공은 둘 곳이 없다.