Uma das tarefas mais importantes da informática moderna é a modelação de processos biológicos. Recentemente, os biólogos descobriram $n$ vírus, atribuindo a cada um um código único de $1$ a $n$. Um vírus pode integrar-se nas células de outros organismos. Inicialmente, os cientistas dispõem de $n$ células, numeradas de $1$ a $n$, e a célula de número $i$ está infetada pelo vírus $i$. Cada célula só pode estar infetada por um vírus.
Determinou-se o nível de suscetibilidade de cada célula a cada vírus. Mais precisamente, para cada célula conhece-se o vírus ao qual é mais suscetível, o vírus ao qual é mais suscetível entre os restantes, e assim sucessivamente.
As células infetadas por vírus atacam-se umas às outras. Suponha que a célula de número $i$ está atualmente infetada pelo vírus $a$ e ataca a célula de número $j$, infetada pelo vírus $b$. Se a célula $j$ for mais suscetível ao vírus $a$ do que ao vírus $b$, a célula $j$ passa a estar infetada pelo vírus $a$.
Na experiência, os cientistas colocam todas as $n$ células num ambiente fechado, onde elas podem atacar-se de qualquer maneira. A experiência termina quando nenhum ataque deste tipo pode alterar o vírus que infeta qualquer célula.
Os cientistas dizem que o vírus $i$ é estável se, para qualquer sequência de ataques entre células que leve ao fim da experiência, permanecer pelo menos uma célula infetada pelo vírus $i$.
Os cientistas dizem que o vírus $i$ é viável se existir uma sequência de ataques entre células que leve ao fim da experiência e após a qual permaneça pelo menos uma célula infetada pelo vírus $i$.
Por exemplo, suponha que existem dois vírus, que a célula 1 é mais suscetível ao vírus 1 e que a célula 2 é mais suscetível ao vírus 2. A experiência termina imediatamente: nenhum ataque altera o vírus que infeta uma célula. Assim, ambos os vírus são estáveis e viáveis.
Suponha agora que existem dois vírus, mas a célula 1 é mais suscetível ao vírus 2 e a célula 2 ao vírus 1. A experiência termina após qualquer ataque de uma célula à outra. Existem dois cenários possíveis. No primeiro, a célula 1 ataca a célula 2, e ambas ficam infetadas pelo vírus 1. No segundo, a célula 2 ataca a célula 1, e ambas ficam infetadas pelo vírus 2. Assim, nenhum vírus é estável, mas ambos são viáveis.
Finalmente, suponha que existem dois vírus e que ambas as células são mais suscetíveis ao vírus 1. O ataque da célula 2 à célula 1 não altera o vírus que a infeta, enquanto, se a célula 1 atacar a célula 2, a segunda célula fica infetada pelo vírus 1. Portanto, a experiência terminará após o ataque da célula 2 à célula 1; o vírus 1 é estável e viável, enquanto o vírus 2 não possui nenhuma destas propriedades.
Os cientistas precisam de responder a dois tipos de perguntas: quais os vírus estáveis e quais os vírus viáveis.
Escreva um programa que, dadas as descrições das células e o tipo de pergunta, determine todos os vírus estáveis ou todos os vírus viáveis.
Entrada
A primeira linha contém o inteiro $n$, o número de vírus e, consequentemente, de células ($1\le n\le500$).
As $n$ linhas seguintes contêm as descrições das células. Para cada célula, são dados $n$ números distintos de $1$ a $n$: os números dos vírus por ordem decrescente da suscetibilidade da célula a eles.
A última linha contém o número $p$, que especifica a propriedade dos vírus que interessa aos cientistas. O valor $p=1$ significa que querem determinar todos os vírus estáveis, e $p=2$ significa que querem determinar todos os vírus viáveis.
Saída
A primeira linha deve conter o inteiro $k$, o número de vírus que possuem a propriedade pretendida ($0\le k\le n$).
A segunda linha deve conter $k$ inteiros, os números dos vírus que possuem essa propriedade, por ordem crescente.
Exemplos
Entrada 1
2 1 2 2 1 1
Saída 1
2 1 2
Entrada 2
2 1 2 2 1 2
Saída 2
2 1 2
Entrada 3
2 2 1 1 2 1
Saída 3
0
Entrada 4
2 2 1 1 2 2
Saída 4
2 1 2
Entrada 5
2 1 2 1 2 1
Saída 5
1 1
Entrada 6
2 1 2 1 2 2
Saída 6
1 1
Entrada 7
4 3 2 4 1 1 4 2 3 3 1 2 4 1 4 2 3 1
Saída 7
1 3
Entrada 8
4 3 2 4 1 1 4 2 3 3 1 2 4 1 4 2 3 2
Saída 8
3 1 3 4
Pontuação
| Subtarefa | Pontos | Limites de $n$ | Limites de $p$ | Subtarefas necessárias | Resultados durante a prova |
|---|---|---|---|---|---|
| 1 | 11 | $1\le n\le5$ | $p=1$ | Por teste | |
| 2 | 21 | $1\le n\le500$ | $p=1$ | 1 | Primeiro erro |
| 3 | 22 | $1\le n\le5$ | Exemplos, 1 | Por teste | |
| 4 | 31 | $1\le n\le50$ | Exemplos, 1–3 | Primeiro erro | |
| 5 | 15 | $1\le n\le500$ | Exemplos, 1–4 | Primeiro erro |
Informações gerais sobre as tarefas da primeira prova
| Tarefa | Tipo de tarefa | Limites |
|---|---|---|
| 1. Extração de rádio | Padrão | 1 s, 512 MB |
| 2. Vírus | Padrão | 1 s, 512 MB |
| 3. Иннофон | Padrão | 3 s, 512 MB |
| 4. Teletransporte quântico | Padrão | 4 s, 512 MB |
Os dados devem ser lidos da entrada padrão. Os dados de saída devem ser escritos na saída padrão.
Em todas as tarefas, os pontos de uma subtarefa só são atribuídos se todos os seus testes forem aprovados.