Gravity Hackenbush
시간 제한2초메모리 제한1024 MB
바닥에 연결된 점과 빨강, 파랑, 초록 선분으로 이루어진 그래프에서 두 플레이어가 최적으로 자를 때 누가 이기는지 구합니다.
문제
성현이는 Gravity Hackenbush라는 2인용 게임을 만들어 나정휘에게 선물했다.
Gravity Hackenbush의 준비 과정은 다음과 같다.
- 땅을 나타내는 직선 을 그린다.
- 개의 점을 찍는다. 땅보다 낮은 곳에는 점을 찍을 수 없다.
- 2번 과정에서 찍은 점 중 서로 다른 두 점을 잇는 개의 선을 그린다. 땅과 평행한 선은 그릴 수 없다.
- 각 선을 빨간색, 파란색, 초록색 중 하나로 칠한다.
게임은 다음과 같이 진행된다.
- 두 플레이어는 승부가 날 때까지 번갈아 턴을 가진다. 1번 플레이어가 먼저 시작한다.
- 각 플레이어는 특정 색깔의 선만 자를 수 있다.
- 빨간색 선은 1번 플레이어만 자를 수 있다.
- 파란색 선은 2번 플레이어만 자를 수 있다.
- 초록색 선은 두 플레이어 모두 자를 수 있다.
- 자신의 턴에는 자를 수 있는 선 중 하나를 골라 자른다.
- 자신의 턴에 자를 수 있는 선이 없는 플레이어는 패배한다.
- 선을 자른 뒤, 땅과 직간접적으로 연결되지 않은 점과 선은 연결된 점 또는 선이 땅에 닿을 때까지 내려간다.
- 떨어지는 과정에서 연결되지 않은 점이나 선끼리 만나더라도 연결되지 않은 것으로 취급한다.
아래 그림은 선을 하나 자른 뒤의 상태를 보여준다.

나정휘는 난정휘와 함께 게임을 여러 번 플레이하며 필승법을 찾아냈다. 마침 천하제일 코딩대회에 낼 문제가 부족했던 나정휘는 그 필승법을 찾는 문제를 대회에 출제하기로 했다.
게임의 초기 상태가 주어지면, 두 사람이 최선을 다해 플레이했을 때 누가 이기는지 구하라. 나정휘가 1번 플레이어, 난정휘가 2번 플레이어다.
입력
첫째 줄에 점의 개수와 선의 개수를 나타내는 정수 , 이 공백으로 구분되어 주어진다. (, )
둘째 줄부터 개의 줄에 번 점의 좌표 , 가 한 줄에 하나씩 공백으로 구분되어 주어진다. (, )
다음 개의 줄에 번째 선이 연결하는 두 점의 번호 , 와 색깔 가 공백으로 구분되어 주어진다. (, , 는 R, G, B 중 하나)
두 점의 좌표는 모두 서로 다르다. 같은 두 점을 잇는 선이 여러 개 주어지지 않는다. x축과 평행한 선은 주어지지 않는다.
처음에 모든 점은 땅과 직간접적으로 연결되어 있다.
입력으로 주어지는 수는 모두 정수이다.
출력
두 사람이 최선을 다해 플레이할 때, 나정휘가 이기면 jhnah917, 난정휘가 이기면 jhnan917을 출력한다.