블랙 비엔나

시간 제한1초메모리 제한128 MB

문제

이 문제는 보드게임 '블랙 비엔나(Black Vienna)'를 변형한 것입니다. 세 명의 플레이어가 참여하며, A부터 R까지의 문자가 적힌 카드 18장을 사용합니다.

  • 이 중 3장은 따로 빼내어 숨기며, 이 세 장을 갱(gang)이라고 부릅니다.
  • 남은 15장을 잘 섞어 각 플레이어에게 5장씩 나누어 줍니다.
  • 플레이어는 자신의 카드를 서로에게 절대 공개하지 않습니다.

또한 심문 카드 더미가 따로 있습니다. 각 심문 카드에는 서로 다른 세 개의 문자가 오름차순으로 적혀 있습니다(예: ACG, BHR).

차례는 플레이어 1 → 2 → 3 순서로 돌아갑니다. 자기 차례가 되면 플레이어는 심문 카드 하나를 골라 다른 플레이어 앞에 앞면으로 내려놓습니다. 지목된 플레이어는 그 카드에 적힌 세 문자 중 자신이 몇 장을 가지고 있는지 개수만 말해야 하며, 어떤 문자인지는 밝히지 않습니다. 예를 들어 어떤 플레이어가 심문 카드 ACG로 지목되었고 A와 G는 가지고 있지만 C는 없다면, 그 플레이어는 2라고 답합니다. 이 심문의 결과(누가 어떤 카드로 지목되었고 답이 몇이었는지)는 모든 플레이어가 함께 봅니다.

각 플레이어는 오직 자신의 카드 5장과 지금까지 공개된 모든 심문 결과만으로 추리합니다. 어떤 플레이어의 입장에서, 지금까지 알려진 정보와 모순되지 않는 갱의 조합이 정확히 하나뿐이라면 그 플레이어는 갱을 확신할 수 있습니다.

여러 게임의 기록이 주어질 때, 각 게임에서 어떤 플레이어든 갱을 확실히 알아낼 수 있게 되는 가장 이른 시점을 구하세요.

입력

입력은 1개 이상 12개 이하의 데이터 집합으로 이루어지며, 마지막에는 0만 적힌 줄이 옵니다.

각 데이터 집합의 형식은 다음과 같습니다.

  • 첫 줄: 기록된 차례의 수 $t$ ($2 \le t \le 15$).
  • 둘째 줄: 공백으로 구분된 네 개의 문자열. 차례대로 플레이어 1, 2, 3의 손패(각 5장)와 갱의 카드 3장입니다.
  • 이어지는 $t$개의 줄: 각 차례의 기록이 순서대로 주어집니다. 각 줄은 공백으로 구분된 세 개의 토큰으로 이루어집니다 — 지목된 플레이어의 번호, 심문에 사용된 세 문자, 그리고 지목된 플레이어가 답한 개수입니다.

모든 문자열은 A부터 R까지의 대문자로만 이루어지며, 문자는 항상 오름차순으로 정렬되어 있습니다. 같은 심문 문자열이 한 게임에서 여러 차례에 걸쳐 나타날 수 있습니다.

출력

각 데이터 집합마다 한 줄을 출력합니다. 기록된 모든 차례가 끝난 뒤에도 어떤 플레이어도 갱을 확신할 수 없다면 문자 ?를 출력합니다. 어떤 플레이어가 갱을 알아낼 수 있다면, 한 명 이상의 플레이어가 갱을 확신할 수 있게 되는 가장 이른 차례의 번호를 출력합니다.