연호
시간 제한8초메모리 제한512 MB
서기 연도와 연호 및 연도를 대응시킨 불완전한 기록이 주어질 때, 각 질의 연도의 연호와 연도를 출력하고 어떤 기록도 해당 연도를 덮지 않으면 Unknown을 출력한다.
문제
일본에서 널리 쓰이는 달력 체계는 두 가지다. 하나는 세계 여러 나라가 쓰는 그레고리력이고, 일본에서는 이를 서력이라고 부른다.
다른 하나는 연호를 쓰는 달력, 이른바 일본력이다. 이 체계는 고대 중국의 제도에서 왔고, 최근 일본에서는 날짜를 천황과 묶어 나타내는 방식으로 자리 잡았다. 연호 체계에서는 새 천황이 즉위할 때 정한 연호로 해를 나타낸다. 연호가 A라면 그 연호의 첫해는 "A 1", 둘째 해는 "A 2"이고, 이후도 같은 방식이다.
달력 체계가 둘이니 한쪽 표기를 다른 쪽으로 바꿔야 할 일이 자주 생긴다. 이 문제에서는 서력 연도 몇 개와 연호 표기의 대응이 담긴 데이터베이스를 받아, 주어진 서력 연도를 연호 표기로 바꾸는 프로그램을 작성한다.
문제를 단순하게 하기 위해 다음을 가정한다.
- 새 연호는 항상 해당 그레고리력 연도의 1월 1일에 시작한다.
- 각 연호의 첫해는 1로 적는다.
- 한 해에 연호가 두 번 이상 바뀌는 일은 없다.
단, 주어지는 데이터베이스는 완전하지 않을 수 있다. 즉 역사에 실제로 있었던 연호가 데이터에서 빠져 있을 수 있다. 그래서 주어진 해가 어느 연호에 속하는지 정확히 알 수 없는 경우도 찾아내야 한다.
데이터베이스 항목 는 서력 년이 연호 의 년이라는 뜻이므로, 연호 는 적어도 서력 년부터 년까지 이어진다. 질의한 해가 이렇게 확정되는 구간 중 어디에도 들어가지 않으면 데이터에 없는 연호가 그 해를 차지했을 가능성이 남으므로 연호를 확정할 수 없다.
입력
입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋의 형식은 다음과 같다.
N Q
EraName1 EraBasedYear1 WesternYear1
.
.
.
EraNameN EraBasedYearN WesternYearN
Query1
.
.
.
QueryQ
각 데이터셋의 첫 줄에는 두 양의 정수 과 가 주어진다 (, ). 은 데이터베이스 항목의 개수, 는 질의의 개수다.
이어지는 개의 줄에는 각각 연호 이름, 그 연호로 센 해, 그에 대응하는 서력 연도가 주어진다 (). 연호 이름은 로마자 알파벳 16자 이하로 이루어진다. 그다음 개의 줄에는 연호 표기로 바꿀 서력 연도가 한 줄에 하나씩 주어진다 ().
입력의 끝은 0 두 개만 있는 줄로 표시한다. 이 줄은 어떤 데이터셋에도 속하지 않으므로 처리하지 않는다.
입력에 나오는 서력 연도는 모두 양의 정수이고, 같은 연호 이름을 가진 항목은 둘 이상 나오지 않는다.
출력
각 질의마다 주어진 서력 연도에 대응하는 연호 이름과 그 연호로 센 해를 공백 하나로 구분해 한 줄에 출력한다. 연호를 확정할 수 없으면 따옴표 없이 Unknown을 출력한다.