교수님은 기다리지 않는다
시간 제한2초메모리 제한256 MB
샘플 간 무게 차이 측정과 질의를 처리하면서 가중 유니온파인드로 차이를 구하거나 알 수 없으면 UNKNOWN을 출력합니다.
문제
상근이는 매일 아침 실험실로 출근해 샘플의 무게를 잰다. 상근이는 두 샘플을 고른 뒤, 저울을 이용해 두 샘플의 무게 차이를 잰다.
교수님의 마음에 들기 위해 아침부터 부지런히 무게를 재지만, 가끔 교수님이 실험실에 들어와 어떤 두 샘플의 무게 차이를 물어보기도 한다. 이때 상근이는 지금까지 잰 결과를 바탕으로 대답할 수 있을 수도, 없을 수도 있다.
상근이는 출근한 첫날부터 모든 결과를 공책에 적어 두었다. 하지만 적어 둔 양이 너무 많아 교수님의 질문에 빠르게 대답하지 못했다. 이런 상근이를 돕는 프로그램을 만들자.
상근이가 실험실에서 한 일이 순서대로 주어진다. 교수님의 각 질문에 대해, 두 샘플의 무게 차이를 알아낼 수 있는지 판단하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스의 첫째 줄에는 샘플 종류의 개수 ()과 상근이가 실험실에서 한 일의 수 ()이 주어진다. 샘플은 번부터 번까지 번호가 매겨져 있다. 다음 개의 줄에는 상근이가 한 일이 주어진다.
무게를 잰 경우 ! a b w 형식으로 주어지며, 이는 샘플 가 샘플 보다 그램 무겁다는 뜻이다 (). 는 을 넘지 않는 음이 아닌 정수이다. 모든 측정은 정확하며 서로 일관적이다.
교수님의 질문은 ? a b 형식으로 주어지며, 가 보다 얼마나 무거운지를 출력하라는 뜻이다.
마지막 줄에는 이 두 개 주어진다.
출력
교수님의 질문 ? a b가 주어질 때마다, 지금까지 측정한 결과로 와 의 무게 차이를 계산할 수 있으면 가 보다 얼마나 무거운지를 출력한다. 이 차이의 절댓값은 을 넘지 않는다. 측정한 결과로 무게 차이를 계산할 수 없으면 UNKNOWN을 출력한다.