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