Ви керуєте командою, яка інспектує новий гірськолижний курорт. Курорт розташований на декількох горах і складається з ряду схилів. Схили з'єднані між собою, розгалужуються та зливаються. Карта гірськолижного курорту представлена у вигляді ациклічного направленого графа. Вершини графа відповідають різним точкам на курорті, а ребра графа — це схили між цими точками, при цьому напрямок ребер іде вниз.
Ваша команда повинна оглянути кожен схил курорту. Підйомники ще не працюють, але у вас є гелікоптер. За один виліт гелікоптер може висадити одну людину в будь-якій точці курорту. З цієї точки людина може спуститися вниз по схилах, інспектуючи кожен з них по дорозі. Допускається інспектувати один і той же схил кілька разів, але потрібно мінімізувати кількість використань гелікоптера. Таким чином, ви повинні визначити, як оглянути всі схили з найменшою кількістю вильотів гелікоптера.
У першому рядку вхідного файлу міститься одне ціле число (2 \le n \le 100) — кількість точок на гірськолижному курорті. Наступні рядків вхідного файлу описують кожну точку курорту, які пронумеровано від до . Кожен рядок починається з одного цілого числа m_i (0 \le m_i < n), за яким ідуть m_i цілих чисел a_{ij}, розділених пробілами. Всі a_{ij} різні для кожного , і кожне a_{ij} (1 \le a_{ij} \le n, a_{ij} \ne i) позначає схил, що йде вниз з точки до точки a_{ij}. У кожної точки курорту є хоча б один схил, що з'єднує її з іншими.
У першому рядку вихідного файлу виведіть одне ціле число — мінімальну кількість вильотів гелікоптера, необхідних для огляду всіх схилів. Далі виведіть рядків, у кожному з яких опишіть маршрут огляду для кожного вильоту гелікоптера. Кожен маршрут повинен починатися з одного цілого числа від до — номера точки десантування для даного вильоту, далі через пробіл — номери точок, які будуть відвідані по черзі в ході інспекції схилів вниз. Номери у рядку мають бути розділені пробілами. Маршрути можна виводити в довільному порядку.
Приклад 1