Jednym z najważniejszych zadań współczesnej informatyki jest modelowanie procesów biologicznych. Niedawno biolodzy odkryli $n$ wirusów, z których każdemu przypisano unikalny numer od $1$ do $n$. Wirus potrafi wnikać do komórek innych organizmów. Początkowo naukowcy dysponują $n$ komórkami ponumerowanymi od $1$ do $n$, a komórka numer $i$ jest zakażona wirusem $i$. Każda komórka może być zakażona tylko jednym wirusem.
Dla każdej komórki ustalono jej podatność na każdy wirus. Wiadomo mianowicie, na który wirus jest najbardziej podatna, na który z pozostałych jest najbardziej podatna i tak dalej.
Zakażone komórki atakują się nawzajem. Załóżmy, że komórka $i$ jest obecnie zakażona wirusem $a$ i atakuje komórkę $j$, zakażoną wirusem $b$. Jeżeli komórka $j$ jest bardziej podatna na wirus $a$ niż na wirus $b$, zostaje zakażona wirusem $a$.
Podczas eksperymentu naukowcy umieszczają wszystkie $n$ komórek w zamkniętym środowisku, gdzie mogą one atakować się w dowolny sposób. Eksperyment kończy się, gdy żaden taki atak nie może już zmienić wirusa, którym zakażona jest jakakolwiek komórka.
Naukowcy nazywają wirus $i$ stabilnym, jeżeli po każdym ciągu wzajemnych ataków komórek prowadzącym do zakończenia eksperymentu pozostanie co najmniej jedna komórka zakażona wirusem $i$.
Naukowcy nazywają wirus $i$ zdolnym do przetrwania, jeżeli istnieje ciąg wzajemnych ataków komórek prowadzący do zakończenia eksperymentu, po którym pozostanie co najmniej jedna komórka zakażona wirusem $i$.
Na przykład, niech będą dwa wirusy, przy czym komórka $1$ jest najbardziej podatna na wirus $1$, a komórka $2$ na wirus $2$. Wtedy eksperyment kończy się natychmiast: żaden atak nie zmienia wirusa zakażającego komórkę. Oba wirusy są więc stabilne i zdolne do przetrwania.
Załóżmy teraz, że są dwa wirusy, ale komórka $1$ jest najbardziej podatna na wirus $2$, a komórka $2$ na wirus $1$. Eksperyment kończy się po dowolnym ataku jednej komórki na drugą. Możliwe są dwa scenariusze. W pierwszym komórka $1$ atakuje komórkę $2$ i obie zostają zakażone wirusem $1$. W drugim komórka $2$ atakuje komórkę $1$ i obie zostają zakażone wirusem $2$. Nie ma więc wirusów stabilnych, ale oba są zdolne do przetrwania.
Wreszcie, niech będą dwa wirusy, a obie komórki będą bardziej podatne na wirus $1$. Atak komórki $2$ na komórkę $1$ nie zmienia wirusa, którym jest ona zakażona. Jeżeli natomiast komórka $1$ zaatakuje komórkę $2$, druga komórka zostaje zakażona wirusem $1$. Zatem eksperyment zakończy się po zaatakowaniu komórki $1$ przez komórkę $2$; wirus $1$ jest stabilny i zdolny do przetrwania, a wirus $2$ nie ma żadnej z tych własności.
Naukowcy muszą odpowiadać na dwa rodzaje pytań: które wirusy są stabilne, a które są zdolne do przetrwania.
Napisz program, który na podstawie opisów komórek i rodzaju pytania wyznaczy wszystkie wirusy stabilne albo wszystkie wirusy zdolne do przetrwania.
Wejście
Pierwszy wiersz zawiera liczbę całkowitą $n$: liczbę wirusów, a zarazem komórek ($1\le n\le 500$).
Następne $n$ wierszy zawiera opisy komórek. Dla każdej komórki podano $n$ różnych liczb od $1$ do $n$: numery wirusów w kolejności malejącej podatności tej komórki na nie.
Ostatni wiersz zawiera liczbę $p$ określającą własność wirusów, która interesuje naukowców. Wartość $p=1$ oznacza, że chcą wyznaczyć wszystkie wirusy stabilne, a $p=2$ oznacza, że chcą wyznaczyć wszystkie wirusy zdolne do przetrwania.
Wyjście
Pierwszy wiersz powinien zawierać liczbę całkowitą $k$: liczbę wirusów mających własność interesującą naukowców ($0\le k\le n$).
Drugi wiersz powinien zawierać $k$ liczb całkowitych: numery wirusów mających tę własność. Numery należy wypisać w kolejności rosnącej.
Przykład
Wejście 1
2 1 2 2 1 1
Wyjście 1
2 1 2
Wejście 2
2 1 2 2 1 2
Wyjście 2
2 1 2
Wejście 3
2 2 1 1 2 1
Wyjście 3
0
Wejście 4
2 2 1 1 2 2
Wyjście 4
2 1 2
Wejście 5
2 1 2 1 2 1
Wyjście 5
1 1
Wejście 6
2 1 2 1 2 2
Wyjście 6
1 1
Wejście 7
4 3 2 4 1 1 4 2 3 3 1 2 4 1 4 2 3 1
Wyjście 7
1 3
Wejście 8
4 3 2 4 1 1 4 2 3 3 1 2 4 1 4 2 3 2
Wyjście 8
3 1 3 4
Podzadania
| Podzadanie | Punkty | Ograniczenia na $n$ | Ograniczenia na $p$ | Wymagane podzadania | Wyniki podczas zawodów |
|---|---|---|---|---|---|
| 1 | 11 | $1\le n\le 5$ | $p=1$ | Wyniki każdego testu | |
| 2 | 21 | $1\le n\le 500$ | $p=1$ | 1 | Pierwszy błąd |
| 3 | 22 | $1\le n\le 5$ | Przykłady, 1 | Wyniki każdego testu | |
| 4 | 31 | $1\le n\le 50$ | Przykłady, 1–3 | Pierwszy błąd | |
| 5 | 15 | $1\le n\le 500$ | Przykłady, 1–4 | Pierwszy błąd |
Informacje ogólne o zadaniach pierwszego dnia
Dane należy czytać ze standardowego wejścia. Wyniki należy wypisywać na standardowe wyjście.
We wszystkich zadaniach punkty za podzadanie są przyznawane tylko wtedy, gdy zaliczono wszystkie jego testy.