동전 종류 판별

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

문제

미르코는 지폐를 쓰지 않고 동전만 쓰는 먼 나라를 여행했다. 이 나라에는 동전이 NN종류 있고, 이름은 각각 K1, K2, K3, ..., KN이다. 동전은 크기와 모양이 모두 같지만 무게가 서로 다르다. K1이 가장 가볍고 K2가 그다음으로 가벼우며, 같은 방식으로 이어져 KN이 가장 무겁다.

미르코의 주머니에는 동전이 MM개 들어 있지만, 각각이 어떤 종류인지는 모른다. 종류를 알아내려고 그가 쓸 수 있는 도구는 단순한 양팔저울 하나뿐이다.

미르코는 먼저 동전에 11번부터 MM번까지 번호를 붙였고, 그다음 저울질을 VV번 했다. 한 번의 저울질에서는 저울 한쪽에 동전 하나를 올리고 반대쪽에 다른 동전 하나를 올린다. 그리고 두 동전의 무게가 같은지, 같지 않다면 어느 쪽이 더 무거운지 확인한다.

저울질 결과를 바탕으로, 종류를 하나로 확정할 수 있는 동전마다 그 종류를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 NN, MM, VV가 주어진다. 각각 이 나라에 있는 동전의 종류 수, 미르코의 주머니에 있는 동전의 개수, 저울질 횟수이다.

다음 VV개의 줄에는 저울질 결과가 한 줄에 하나씩 ACB 형태로 주어진다. AABB는 서로 다른 MM 이하의 양의 정수이고, CC는 문자 = (같다) 또는 < (더 가볍다)이다.

숫자와 문자 CC 사이에는 공백이 없다. 저울질 결과 하나는 AA번 동전이 BB번 동전과 무게가 같거나 BB번 동전보다 가볍다는 뜻이다.

저울질 결과에 모순은 없다.

출력

MM개의 줄을 출력한다. ii번째 줄에는 ii번 동전의 종류를 KX 형태의 문자열로 출력한다. 여기서 XX11 이상 NN 이하의 정수이다.

ii번 동전의 종류를 하나로 확정할 수 없으면 ii번째 줄에 문자 ?를 출력한다.

제한

모든 서브태스크에서 2N3000002 \le N \le 300\,000, 2M3000002 \le M \le 300\,000, 1V3000001 \le V \le 300\,000이다.