연호

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

요약
서기 연도와 연호 및 연도를 대응시킨 불완전한 기록이 주어질 때, 각 질의 연도의 연호와 연도를 출력하고 어떤 기록도 해당 연도를 덮지 않으면 Unknown을 출력한다.
난이도

보통10점 중 4점

유형
배열, 정렬, 구간, 구현
정답자
아직 제출이 없습니다

문제

일본에서 널리 쓰이는 달력 체계는 두 가지다. 하나는 세계 여러 나라가 쓰는 그레고리력이고, 일본에서는 이를 서력이라고 부른다.

다른 하나는 연호를 쓰는 달력, 이른바 일본력이다. 이 체계는 고대 중국의 제도에서 왔고, 최근 일본에서는 날짜를 천황과 묶어 나타내는 방식으로 자리 잡았다. 연호 체계에서는 새 천황이 즉위할 때 정한 연호로 해를 나타낸다. 연호가 A라면 그 연호의 첫해는 "A 1", 둘째 해는 "A 2"이고, 이후도 같은 방식이다.

달력 체계가 둘이니 한쪽 표기를 다른 쪽으로 바꿔야 할 일이 자주 생긴다. 이 문제에서는 서력 연도 몇 개와 연호 표기의 대응이 담긴 데이터베이스를 받아, 주어진 서력 연도를 연호 표기로 바꾸는 프로그램을 작성한다.

문제를 단순하게 하기 위해 다음을 가정한다.

  1. 새 연호는 항상 해당 그레고리력 연도의 1월 1일에 시작한다.
  2. 각 연호의 첫해는 1로 적는다.
  3. 한 해에 연호가 두 번 이상 바뀌는 일은 없다.

단, 주어지는 데이터베이스는 완전하지 않을 수 있다. 즉 역사에 실제로 있었던 연호가 데이터에서 빠져 있을 수 있다. 그래서 주어진 해가 어느 연호에 속하는지 정확히 알 수 없는 경우도 찾아내야 한다.

데이터베이스 항목 (A,k,y)(A, k, y)는 서력 yy년이 연호 AA의 kk년이라는 뜻이므로, 연호 AA는 적어도 서력 y−k+1y-k+1년부터 yy년까지 이어진다. 질의한 해가 이렇게 확정되는 구간 중 어디에도 들어가지 않으면 데이터에 없는 연호가 그 해를 차지했을 가능성이 남으므로 연호를 확정할 수 없다.

입력

입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋의 형식은 다음과 같다.

N Q
EraName1 EraBasedYear1 WesternYear1
.
.
.
EraNameN EraBasedYearN WesternYearN
Query1
.
.
.
QueryQ

각 데이터셋의 첫 줄에는 두 양의 정수 NN과 QQ가 주어진다 (1≤N≤10001 \le N \le 1000, 1≤Q≤10001 \le Q \le 1000). NN은 데이터베이스 항목의 개수, QQ는 질의의 개수다.

이어지는 NN개의 줄에는 각각 연호 이름, 그 연호로 센 해, 그에 대응하는 서력 연도가 주어진다 (1≤EraBasedYeari≤WesternYeari≤1091 \le \text{EraBasedYear}_i \le \text{WesternYear}_i \le 10^9). 연호 이름은 로마자 알파벳 16자 이하로 이루어진다. 그다음 QQ개의 줄에는 연호 표기로 바꿀 서력 연도가 한 줄에 하나씩 주어진다 (1≤Queryi≤1091 \le \text{Query}_i \le 10^9).

입력의 끝은 0 두 개만 있는 줄로 표시한다. 이 줄은 어떤 데이터셋에도 속하지 않으므로 처리하지 않는다.

입력에 나오는 서력 연도는 모두 양의 정수이고, 같은 연호 이름을 가진 항목은 둘 이상 나오지 않는다.

출력

각 질의마다 주어진 서력 연도에 대응하는 연호 이름과 그 연호로 센 해를 공백 하나로 구분해 한 줄에 출력한다. 연호를 확정할 수 없으면 따옴표 없이 Unknown을 출력한다.

예제7

  1. 예제 1

    입력
    4 3
    meiji 10 1877
    taisho 6 1917
    showa 62 1987
    heisei 22 2010
    1868
    1917
    1988
    1 1
    universalcentury 123 2168
    2010
    0 0
    
    예상 출력
    meiji 1
    taisho 6
    Unknown
    Unknown
    
  2. 예제 2

    입력
    1 4
    reiwa 3 2021
    2019
    2021
    2018
    2022
    0 0
    
    예상 출력
    reiwa 1
    reiwa 3
    Unknown
    Unknown
    
  3. 예제 3

    입력
    2 5
    alpha 5 1005
    beta 1 1006
    1000
    1001
    1005
    1006
    1007
    0 0
    
    예상 출력
    Unknown
    alpha 1
    alpha 5
    beta 1
    Unknown
    
  4. 예제 4

    입력
    1 3
    z 1000000000 1000000000
    1
    500000000
    1000000000
    0 0
    
    예상 출력
    z 1
    z 500000000
    z 1000000000
    
  5. 예제 5

    입력
    1 2
    a 1 1
    1
    2
    2 3
    eranamesixteenxy 2 100
    Second 1 200
    99
    100
    200
    1 1
    Q 1 1000000000
    999999999
    0 0
    
    예상 출력
    a 1
    Unknown
    eranamesixteenxy 1
    eranamesixteenxy 2
    Second 1
    Unknown
    
  6. 예제 6

    입력
    5 8
    eee 10 5000
    aaa 3 100
    ddd 1 4000
    ccc 50 3000
    bbb 7 500
    98
    97
    494
    2951
    4000
    4001
    4991
    5001
    0 0
    
    예상 출력
    aaa 1
    Unknown
    bbb 1
    ccc 1
    ddd 1
    Unknown
    eee 1
    Unknown
    
  7. 예제 7

    입력
    3 6
    ABCDEFGHIJKLMNOP 16 1016
    abcdefghijklmnop 1 1017
    MixedCaseEraXYZ 2 2000
    1001
    1016
    1017
    1018
    1999
    2000
    0 0
    
    예상 출력
    ABCDEFGHIJKLMNOP 1
    ABCDEFGHIJKLMNOP 16
    abcdefghijklmnop 1
    Unknown
    MixedCaseEraXYZ 1
    MixedCaseEraXYZ 2