읽음
시간 제한1초메모리 제한1024 MB
각 메시지의 보낸 사람과 읽지 않은 사람 수가 주어졌을 때, 이를 만족하는 읽음 기록이 존재하는지, 존재한다면 유일한지 판정합니다.
문제
온라인상의 단체 대화방에서는 여러 사람들이 메시지를 보내고 읽을 수 있다.
단체 대화방의 규칙은 다음과 같다:
- 메시지는 한 줄에 하나씩 보낸 순서대로 나열된다. 더 먼저 보낸 메시지일수록 더 위에 위치한다.
- 각각의 사람은 마지막으로 대화방에 접속한 시점에 올라온 모든 메시지를 읽고 그 아래의 메시지들을 아직 읽지 않았다. 모든 메시지를 읽지 않았거나 모든 메시지를 읽었을 수도 있다.
- 메시지를 보낼 때는 대화방에 접속해야 하므로, 자신의 메시지를 포함하여 그 위의 모든 메시지를 읽게 된다. 한 사람이 여러 개의 메시지를 보내거나 메시지를 한 번도 보내지 않을 수도 있다.
사람들은 자신이 보낸 메시지를 누가 읽었는지 매우 궁금해한다. 하지만 각각의 메시지를 읽은 사람의 목록을 유지하는 일은 매우 비효율적이므로, 단체 대화방에서는 사람들이 보낸 메시지 내용에 덧붙여 그 메시지를 아직까지 읽지 않은 사람의 수를 알려준다.
단체 대화방에서 나열되는 메시지의 형식은 다음과 같다:
[<sender>] <text> (<unread_count>)
<sender>는 보낸 사람의 이름이며, 알파벳 대소문자로 이루어져 있다.<text>는 메시지의 본문이며, 알파벳 대소문자, 숫자, 공백 문자로 이루어져 있다. 빈 문자열이거나 공백 문자만으로 이루어져 있지 않다.<unread_count>는 대화방에서 해당 메시지를 아직 읽지 않은 사람의 수이다.
다음은 단체 대화방에 A, B, C 세 사람이 있고 두 개의 메시지가 있는 예시이다.
- A가 첫 번째 메시지를 보냈으며 읽지 않은 사람 수는 1명이다.
- B가 두 번째 메시지를 보냈으며 읽지 않은 사람 수는 2명이다.
- B가 메시지를 보낼 때 A의 메시지를 읽었으므로 유일하게 남은 사람인 C가 A의 메시지를 읽지 않았다.
- B의 메시지는 2명이 읽지 않았으므로 A와 C 모두 읽지 않았다.
위의 예시는 간단하지만, 매우 많은 사람들이 있는 단체 대화방의 경우 각각의 메시지를 정확히 어떤 사람들이 읽었는지 알기 어렵다. 명의 사람이 있는 단체 대화방에서 개의 메시지 목록이 보낸 순서대로 주어질 때, 단체 대화방에서 제공하는 읽지 않은 사람 수 정보를 만족하는 경우가 존재하는지 알아보자.
입력
첫 번째 줄에 단체 대화방에 속한 사람의 수 과 대화 내역의 수 이 공백으로 구분되어 주어진다. ()
다음으로 개의 줄에 걸쳐 한 줄에 하나씩 대화방에 속한 사람들의 이름이 주어진다. 사람들의 이름은 모두 서로 다르며, 길이는 자 이상 자 이하이고 알파벳 대소문자만으로 이루어져 있다.
다음으로 개의 줄에 걸쳐 한 줄에 하나씩 대화방의 메시지가 주어진다. 메시지의 형식은 위의 설명을 따르며, 모든 메시지의 길이의 합은 이하이다. 보낸 사람의 이름은 위에서 주어진 이름 목록에 있음이 보장되며, 아직 읽지 않은 사람의 수는 이상 이하의 정수이다.
출력
주어진 정보를 만족하는 것이 불가능하다면 IMPOSSIBLE을 출력한다.
주어진 정보를 만족하는 경우가 존재하지만 유일하지 않다면 POSSIBLE을 출력한다.
주어진 정보를 만족하는 경우가 유일하다면 UNIQUE를 출력한다.