레이팅

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

상트페테르부르크에서 두 번의 지역 프로그래밍 대회가 열렸다. 두 대회에 모두 참가한 한 참가자가, 적어도 한 대회에 나온 모든 팀에 대한 통합 레이팅을 만들고자 한다.

각 팀에는 11부터 100100까지의 정수로 된 고유한 식별 번호가 있다. 각 대회에서 참가 팀의 번호는 성적이 좋은 순서(위쪽이 더 좋은 성적)로 세로로 적으며, 성적이 같은 팀들은 한 줄에 함께 적는다.

정의: 어떤 팀보다 성적이 더 좋은 팀이 정확히 K1K-1개일 때, 그 팀의 등수는 KK이다.

예를 들어 두 대회의 결과가 다음과 같다고 하자.

대회 1대회 2
등수팀 번호등수팀 번호
1913
27 1 425
5531 10
615 856
831 1869
1017719
84 20
1021

통합 레이팅은 다음 규칙으로 정한다.

두 대회에 모두 참가한 두 팀에 대해서는,

  1. 한 팀이 두 대회 모두에서 상대 팀보다 나쁘지 않고 적어도 한 대회에서 더 좋았다면, 그 팀의 통합 레이팅이 더 높다.
  2. 두 팀이 각각 서로 다른 한 대회에서만 상대보다 좋았다면, 등수 차이로 비교한다. 예에서 팀 1은 대회 1에서 팀 5보다 3등 앞서지만 대회 2에서는 1등 뒤지므로, 팀 1의 통합 레이팅이 더 높다. 두 대회의 등수 차이가 같다면 두 팀의 통합 레이팅은 같다. 두 대회의 등수가 모두 같은 팀들도 통합 레이팅이 같다.

(즉, 두 대회에 모두 참가한 팀은 두 등수의 합이 작을수록 통합 레이팅이 높고, 합이 같으면 레이팅도 같다.)

이 예에서는 팀 1, 4, 5, 9만 두 번 참가했다. 팀 1의 레이팅이 가장 높고, 이어서 팀 5와 팀 9가 같은 레이팅으로 나란히 오며, 팀 4가 가장 낮다.

대회에만 참가한 팀은 통합 레이팅을 항상 정할 수 있는 것은 아니다. 이런 팀은 (두 번 참가한 팀들이 위 규칙대로 이미 배치된) 통합 목록에 다음 중 하나가 성립할 때에만 삽입된다.

A. 그 한 대회에서 두 대회에 모두 참가한 어떤 팀과 등수를 공유했다면, 이 팀은 그 팀과 같은 통합 레이팅을 가진다. 그런 팀이 여럿이면 그들의 통합 레이팅이 모두 같아야 하며, 그렇지 않으면 이 팀의 레이팅은 정할 수 없다.

B. 그렇지 않을 때, 통합 목록에서 어떤 위치(맨 앞, 맨 뒤, 또는 두 줄 사이)를 잡았을 때 그 앞의 모든 팀이 공통 대회에서 이 팀보다 성적이 좋고 그 뒤의 모든 팀이 이 팀보다 성적이 나쁘다면, 이 팀은 그 위치에 놓인다. 같은 위치를 주장하는 팀이 여럿이면, 그들끼리는 등수 순으로 배치한다(등수가 작을수록 앞이고, 등수가 같은 팀은 한 줄에 함께 온다).

예에 대한 설명:

두 대회에 모두 참가한 팀한 대회에만 참가한 팀
3
110
9 5
19
420
15 8
31 18
17 21
  • 팀 3은 첫 번째 자리를 차지한다(규칙 B).
  • 팀 6과 팀 7의 위치는 정할 수 없다.
  • 팀 10은 팀 1과 같은 레이팅을 가진다(규칙 A).
  • 팀 20은 팀 4와 같은 레이팅을 가진다(규칙 A).
  • 팀 19는 "9 5" 줄과 팀 4 사이에 온다(규칙 B).
  • 팀 8, 15, 17, 18, 21, 31이 목록의 끝을 채운다(규칙 B). 먼저 팀 15와 8(등수 6), 다음으로 팀 31과 18(등수 8), 마지막으로 팀 17과 21(등수 10)이다.

두 대회의 결과표와 위 규칙으로부터 통합 레이팅 목록을 만드는 프로그램을 작성하라.

입력

입력은 빈 줄로 구분된 두 대회의 정보로 이루어진다. 각 정보는 뒤따르는 결과 줄의 개수인 정수 NN (1N1001 \le N \le 100) 하나가 적힌 줄로 시작한다. 그다음 각 줄에는 하나 이상의 팀 번호가 공백으로 구분되어 있다. 한 대회 안에서 각 팀 번호는 많아야 한 번 나타난다.

출력

통합 레이팅 목록을 출력한다. 통합 레이팅이 높은 팀부터 낮은 팀 순으로, 한 줄에 공백으로 구분된 하나 이상의 팀 번호를 적으며, 같은 레이팅을 가진 팀들은 한 줄에 함께 적는다. 한 줄 안에서는 팀 번호를 오름차순으로 출력한다. 통합 레이팅을 정할 수 없는 팀은 출력하지 않는다.