시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
N장의 카드와 N개의 통이 있다. 각 카드에는 양의 정수 하나와 알파벳 대문자 하나가 적혀 있고, 각 통에도 양의 정수 하나가 적혀 있다.
숫자 x가 적힌 카드는 숫자 b가 적힌 통에 대해 b <= x일 때만 넣을 수 있다. 모든 카드는 정확히 한 번씩 사용해야 하며, 모든 통에는 카드가 정확히 한 장씩 들어가야 한다.
카드를 모두 넣은 뒤 첫 번째 통부터 마지막 통까지 들어 있는 카드의 문자를 차례대로 읽어 문자열을 만든다. 규칙을 지키며 만들 수 있는 문자열 중 사전순으로 가장 앞서는 문자열을 구하시오. 가능한 배치가 없으면 -1을 출력한다.
첫째 줄에 카드의 개수 N이 주어진다 (1 <= N <= 50).
다음 N개의 줄에는 각 카드의 정보가 주어진다. 각 줄에는 카드에 적힌 양의 정수 x와 알파벳 대문자 하나가 공백으로 구분되어 주어진다. 카드에 적힌 정수는 1000 이하이다.
마지막 줄에는 각 통에 적힌 N개의 양의 정수가 앞에서부터 순서대로 공백으로 구분되어 주어진다. 각 정수는 1000 이하이다.
만들 수 있는 문자열 중 사전순으로 가장 앞서는 문자열을 출력한다. 규칙대로 모든 카드를 넣을 수 없다면 -1을 출력한다.