Тонни задач на програмування використовують вхідні дані, у яких цілі числа розділені пробілами й переведеннями рядка. У багатьох випадках кількість чисел у файлі й у кожному рядку визначається самими числами.
Більш формально, ми визначаємо опис вхідних даних як послідовність тверджень таких типів:
"Перший/наступний рядок містить невід'ємне ціле число(а), \textit{variable}_1, \textit{variable}_2, ..., \textit{variable}_\textit{number}." Тут — додатне ціле число від до , а — різні імена змінних, які не з'являлися перед цим твердженням у описі. Якщо \textit{number}=1, "ціле число(а)" замінюється на "ціле число", інакше — на "цілі числа".
"Перший/наступний рядок містить цілих чисел." Тут — це ім'я змінної, яке вже з'явилося в описі до цього твердження.
"Перший/наступний рядок містить невід'ємне ціле число , за яким іде цілих чисел." Тут — ім'я змінної, яка не з'являлася раніше й не з'явиться пізніше в описі. Зверніть увагу, що ім'я змінної вживається двічі у цьому твердженні.
"Перший/наступний рядок містить ціле число(а)." Тут — додатне ціле число. Якщо \textit{number}=1, "ціле число(а)" замінюється на "ціле число", інакше — на "цілі числа".
"Перші/наступні рядки містять ціле число(а) у кожному." Тут — ім'я змінної, яка вже з'явилася в описі, а — додатне ціле число. Якщо \textit{number}=1, "ціле число(а)" замінюється на "ціле число", інакше — на "цілі числа".
"Перші/наступні \textit{variable}_1 рядки містять \textit{variable}_2 цілих чисел у кожному." Тут \textit{variable}_1 і \textit{variable}_2 — (можливо, ті ж самі) імена змінних, які вже з'явилися в описі до цього твердження.
"Перші/наступні \textit{variable}_1 рядки містять невід'ємне ціле число \textit{variable}_2, за яким іде \textit{variable}_2 цілих чисел у кожному." Тут \textit{variable}_1 — ім'я змінної, яке вже з'явилося в описі. \textit{variable}_2 — ім'я змінної, яка не з'являлася раніше і не з'явиться пізніше у описі, і відрізняється від \textit{variable}_1. Зверніть увагу, що, на відміну від інших змінних, \textit{variable}_2 може мати різні значення для кожного рядка за цим описом. Це корисно, наприклад, для переліку декількох куп із різними кількостями предметів у кожній.
Кожне входження "перший/наступний" у твердженнях вище слід замінити на "перший" у першому твердженні опису й на "наступний" у всіх наступних.
Дано кілька вхідних файлів, потрібно перевірити, чи існує опис із не більш як тверджень, що підходить для більшості з даних вхідних файлів, і виділити ті, які не відповідають опису.
Перший рядок вхідного файлу містить ціле число (1 \leq n \leq 10) — кількість файлів. Зауважте, що надалі під «вхідним файлом» мається на увазі його вміст.
Опис кожного файлу починається з рядка з дефісом ("-"). Далі йдуть рядки файлу, до кінця кожного з них додано знак оклику ("!") для уникнення труднощів з обробкою порожніх рядків.
Після видалення знака оклику з кінця рядка, у кожному рядку кожного файлу буде від до цілих чисел, кожне від до , розділених одним пробілом. Кожен файл містить не більше рядків і не більше чисел.
Якщо існує опис з не більш ніж твердженнями, що описує всі файли, виведіть All good! (без лапок) у першому рядку, а далі по одному твердженню в рядку сам опис. Для назв змінних використовуйте непорожні рядки з не більш як 10 малих англійських букв. Якщо існує декілька можливих описів, виведіть будь-який.
Якщо існує опис з не більш ніж твердженнями, що підходить хоча б для одного з файлів, знайдіть будь-який такий опис, що покриває найбільшу кількість файлів. У першому рядку виведіть Bad format: . (без лапок), де — це список номерів файлів (від до через пробіл), які не відповідають опису. Далі виведіть опис.
Якщо опис з не більш як тверджень не підходить до жодного з файлів, виведіть FAIL. у єдиному рядку.
Приклад 1