Недавно завершился отборочный этап на участие во всемирном турнире популярной игры PKBG. Для того, чтобы определить участников, прошедших отборочный тур, организаторы решили попросить всех участников отправить лог матча, в котором они принимали участие.
В матче принимают участие команды по 4 человека. Всего участвует
n игроков (
n делится нацело на 4). Для сохранения анонимности, составы команд не разглашаются. Всего в игре может произойти три события:
- X HIT Y IN BODY/HEAD — игрок X выстрелил в игрока Y и попал в тело или голову;
- X USES MEDKIT — игрок X использовал аптечку и полностью вылечился;
- X REVIVE Y — игрок X оживил игрока Y.
У каждого игрока могут быть четыре состояния: здоров, ранен, при смерти и мертв. Пронумеруем состояния игроков от 3 до 0 в том порядке, в котором они были описаны ранее. При получении урона в тело или голову состояние игрока меняется на max(0, cur − 1) и max(0, cur − 2) соответственно, где cur - текущее состояние игрока. Использование аптечки делает игрока здоровым. Оживление переводит игрока из состояния при смерти в состояние ранен. Изначально все игроки здоровы. Можно считать, что патроны и аптечки у игроков не кончаются.
В игре также есть несколько строгих правил:
- Стрелять в другого игрока, использовать аптечку или воскрешать напарника может только здоровый или раненый игрок;
- Оживлять можно только игроков в состоянии при смерти и при этом только своих союзников;
- Любой игрок находится в команде, состоящий из 4 игроков.
Если хоть одно из установленных правил было нарушено, логи считаются поддельными. Любые другие события допустимы. Например, игрок может случайно выстрелить либо в напарника, либо в себя.
До начала соревнования осталось совсем немного времени. Вам, как главному программисту компании, поручили определить корректность логов и дать возможный прогноз на состав команд. Если ответов, удовлетворяющих правилам игры, несколько, выведите любой из них.
Исходные данные
В первой строке записано целое число n (4 ≤ n ≤ 1000) — количество игроков. В следующих n строках записаны имена игроков. Имя игрока — строка, состоящая из больших и маленьких латинских букв, длина строки не превосходит 20. Все имена различны. Затем следует число m (0 ≤ m ≤ 104) — количество логов в матче. В следующих m строках записаны события в формате, описанном выше. Гарантируется, что формат в котором описаны события строго соблюдается как в корректных, так и в поддельных логах.
Результат
Выведите “FAKE” (без кавычек), если логи не соответствуют игровым правилам, иначе выведите “CORRECT” (без кавычек), и в следующих n / 4 строках перечислите возможный состав команд, по 4 имени игрока на строку. Имена в одной строке разделяйте пробелом.
Примеры
исходные данные | результат |
---|
8
Shroud
Forsen
Wycc
Ragyra
BeastQT
Lirik
Asmadey
Ninja
12
Wycc HIT Shroud IN BODY
Shroud HIT Wycc IN HEAD
Ragyra REVIVE Wycc
Wycc USES MEDKIT
Lirik HIT BeastQT IN BODY
Asmadey HIT BeastQT IN BODY
Asmadey REVIVE BeastQT
Ragyra HIT Forsen IN HEAD
Shroud REVIVE Forsen
BeastQT HIT Shroud IN HEAD
Wycc HIT Forsen IN HEAD
Ninja HIT BeastQT IN HEAD
| CORRECT
Wycc Ragyra BeastQT Asmadey
Lirik Ninja Shroud Forsen |
8
Shroud
Forsen
Wycc
Ragyra
BeastQT
Lirik
Asmadey
Ninja
8
Shroud HIT Wycc IN HEAD
Shroud HIT Ragyra IN HEAD
Shroud HIT BeastQT IN HEAD
Shroud HIT Asmadey IN HEAD
Lirik REVIVE Wycc
Lirik REVIVE Ragyra
Lirik REVIVE BeastQT
Lirik REVIVE Asmadey
| FAKE |
4
Shroud
Forsen
Wycc
Ragyra
3
Shroud HIT Wycc IN HEAD
Wycc HIT Shroud IN HEAD
Wycc HIT Shroud IN BODY
| FAKE |
Автор задачи: Иван Сычёв
Источник задачи: Вузовско-академическая олимпиада по информатике 2019