아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

동전 종류 판별

시간 제한2초메모리 제한512 MB

요약
저울질 비교 결과로 각 동전의 종류가 하나로 정해지면 적고 아니면 ?를 출력합니다.
난이도

보통10점 중 7점

유형
유니온 파인드, 위상 정렬, 동적 계획법, 그래프
정답자
아직 제출이 없습니다

문제

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

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

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

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

입력

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

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

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

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

출력

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

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

제한

모든 서브태스크에서 2≤N≤300 0002 \le N \le 300\,000, 2≤M≤300 0002 \le M \le 300\,000, 1≤V≤300 0001 \le V \le 300\,000이다.

예제2

  1. 예제 1

    입력
    3 5 3
    1<2
    2<4
    3=5
    
    예상 출력
    K1
    K2
    ?
    K3
    ?
    
  2. 예제 2

    입력
    2 7 6
    1=2
    2=3
    2=7
    3<4
    4=5
    4=6
    
    예상 출력
    K1
    K1
    K1
    K2
    K2
    K2
    K1