너의 이름은

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

요약
메시지별 안 읽은 사람 수가 순서대로 주어질 때, 일관된 읽기 일정에서 메시지 Q를 안 읽었을 수 있는 모든 사람을 찾는다.
난이도

보통10점 중 7점

유형
그리디, 구현, 시뮬레이션, 완전 탐색
정답자
아직 제출이 없습니다

문제

OAKAK TALK에는 메시지 옆에 그 메시지를 아직 읽지 않은 사람의 수를 표시하는 기능이 있다. 이 기능은 수만 알려주고 누가 읽지 않았는지는 알려주지 않는다. 그래서 몇 명이 읽었는지는 알아도 누가 읽었는지는 알 수 없다. 다만 조건이 맞으면 메시지를 읽지 않은 사람이 누구인지 유추할 수 있다.

NN명이 있는 OAKAK TALK 방에 메시지가 KK개 있다. 각 메시지에는 보낸 사람과 아직 읽지 않은 사람의 수가 기록된다. 누군가 어떤 시점에 메시지를 읽거나 보내면, 그 시점 이전에 받은 메시지는 모두 읽은 것으로 처리된다. 보낸 사람은 자기가 보낸 메시지를 읽은 사람으로 센다.

사람의 이름은 A, B, C, ..., Z이고, NN명에게는 A부터 사전순으로 알파벳이 하나씩 붙는다. 나의 이름은 A이고, 나는 항상 모든 메시지를 읽는다.

입력으로 주어진 수와 모순되지 않는 상황을 전부 생각했을 때, QQ번째 메시지를 읽지 않았을 가능성이 있는 사람을 모두 구하라. 어떤 사람이 QQ번째 메시지를 읽지 않은 상황이 하나라도 있으면 그 사람은 답에 들어간다.

입력

첫째 줄에 방에 있는 사람 수 NN, 메시지의 개수 KK, 알고 싶은 메시지의 번호 QQ가 주어진다. (1≤N≤261 \le N \le 26, 1≤K≤100001 \le K \le 10000, 1≤Q≤K1 \le Q \le K)

둘째 줄부터 KK개의 줄에 메시지가 보낸 순서대로 주어진다. 각 줄에는 그 메시지를 아직 읽지 않은 사람의 수 RR과 보낸 사람의 이름 PP가 공백 하나를 사이에 두고 주어진다. RR은 바로 앞 메시지의 값보다 작지 않고, 모순되는 입력은 주어지지 않는다.

출력

QQ번째 메시지를 읽지 않았을 가능성이 있는 사람의 이름을 사전순으로 공백 하나를 사이에 두고 한 줄에 출력한다. 모든 사람이 QQ번째 메시지를 읽어서 출력할 이름이 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    5 6 4
    1 A
    2 A
    2 A
    3 A
    3 B
    3 A
    
    예상 출력
    C D E
    
  2. 예제 2

    입력
    3 4 4
    0 A
    0 C
    1 B
    1 A
    
    예상 출력
    C