La grădiniţă în grupa mare sunt n fetiţe, numerotate de la 1 la n. Fetiţele culeg flori şi vor să împletească coroniţe pentru festivitatea de premiere. În grădină sunt mai multe tipuri de flori. Fiecare dintre cele n fetiţe culege un buchet având acelaşi număr de flori, însă nu neapărat de acelaşi tip. Pentru a împleti coroniţele fetiţele se împart în grupe.
Grupele se formează în felul următor:
- se alege fetiţa cu numărul de ordine cel mai mic care nu aparţine niciune grupe; această feţită va fi considerată reprezentanta grupei;
- apoi se ataşează grupei toate fetiţele care au cel puţin o floare de acelaşi tip cu una dintre florile fetiţelor existente deja în grupă.
Acest procedeu se aplică până când toate fetiţele sunt distribuite în grupe.
Cerinţă
Scrieţi un program care să determine grupele care se formează conform procedeului descris în enunţ.
Date de intrare
Fişierul de intrare flori.in conţine pe prima linie, separate printr-un spaţiu, numerele naturale n şi k, reprezentând numărul de fetiţe şi respectiv numărul de flori din fiecare buchet. Pe următoarele n linii sunt descrise buchetele culese de cele n fetiţe. Mai exact, pe linia i+1 se află k numere naturale separate prin spaţiu reprezentând tipurile florilor culese de fetiţa i.
Date de ieşire
Fişierul de ieşire flori.out va conţine pe fiecare linie câte o grupă, specificată prin numerele de ordine ale fetiţelor din grupă separate prin câte un spaţiu, în ordine crescătoare. Grupele vor fi specificate în ordinea crescătoare a reprezentantelor lor.
Restricţii
1 <= n <= 150
1 <= k <= 100
Tipul unei flori este un număr întreg din intervalul [0, 100].
Exemple
flori.in
flori.out
Explicaţii
5 4
1 2 3 4
5 6 9 6
1 1 1 1
2 4 4 3
7 7 7 7
1 3 4
2
5
Fetiţele 1 şi 3 au cules amândouă flori de tipul 1, iar fetiţele 1 şi 4 au cules amândouă flori de tipurile 2,3 şi 4, deci toate cele trei fetiţe (1, 3, 4) se vor afla în aceeaşi grupă. Fetiţele 2 şi 5 vor forma fiecare câte o grupă deoarece nu au cules flori de acelaşi tip cu nici una dintre celelalte fetiţe.