FBI가 범죄자들이 연락 거점으로 쓰는 은신처를 감시하고 있다. 거점에서 빠져나가는 이메일을 해독하면 모든 메시지를 읽고 보낸 사람의 사용자 아이디를 확인할 수 있지만, 범죄자들은 아무 의미 없는 알파벳 문자열을 아이디로 쓰기 때문에 아이디만으로는 정체를 알 수 없다. 각 범죄자는 정확히 하나의 아이디만 사용하며, 서로 다른 범죄자가 같은 아이디를 쓰는 일은 없다.
FBI가 가진 유일한 추가 정보는 누가 은신처에 드나들었는지 기록한 출입 로그다. 메시지는 그 순간 은신처 안에 있는 사람만 보낼 수 있으므로, 어떤 아이디로부터 메시지가 가로채이면 그 아이디의 주인은 그때 은신처 안에 있던 사람 중 하나여야 한다. 출입 기록과 가로챈 메시지를 종합하면 아이디를 한 명의 이름으로 특정할 수 있는 경우가 많다.
각 범죄자에 대해, 로그만으로 그 사람의 사용자 아이디를 유일하게 결정할 수 있는지 판단하라.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있으며, 연속한 두 테스트 케이스는 빈 줄로 구분된다.
각 테스트 케이스의 첫 줄에는 은신처를 사용하는 범죄자의 수 n (1≤n≤20)이 주어진다. 다음 줄에는 n개의 사용자 아이디가 공백 하나로 구분되어 주어진다(이 줄은 80자보다 길 수 있다).
그 뒤로는 시간 순서대로 로그 항목이 주어진다. 각 항목은 type arg 형식이다.
E arg — 이름이 arg인 범죄자가 은신처에 들어왔다.L arg — 이름이 arg인 범죄자가 은신처에서 나갔다.M arg — 사용자 아이디 arg로부터 메시지가 가로채였다.Q 한 글자만 있는 줄은 로그의 끝을 뜻한다. 로그가 시작될 때 은신처는 비어 있다. 모든 아이디가 로그에 등장하지는 않을 수 있지만, 모든 범죄자의 이름은 로그에 적어도 한 번은 등장함이 보장된다. 모든 이름과 아이디는 소문자 알파벳으로만 이루어지며 길이는 최대 20이다.
각 테스트 케이스마다 n줄을 출력하며, 범죄자 이름의 사전순으로 정렬한다. 각 줄은 name:userid 형식이다. 여기서 userid는 로그로 유일하게 결정되는 그 범죄자의 사용자 아이디이며, 결정할 수 없으면 ???를 출력한다. 연속한 두 테스트 케이스의 출력은 빈 줄로 구분한다.