Após
uma longa guerra entre a Nação do Fogo e o Reino da Terra,
vivem-se agora tempos de paz entre todas as nações. É o dever do
Avatar manter este clima pacífico e para isso conta com a ajuda
do mundo dos espíritos.
Para garantir a harmonia o Avatar tem de ter em conta as relações de confiança entre todos os habitantes do planeta. Estas relações são representadas por um grafo dirigido onde uma aresta de A para B simboliza que o habitante A confia no habitante B. A figura seguinte ilustra um possível grafo com habitantes numerados de 1 a 13. Nesse grafo, por exemplo, é possível verificar que 1 confia em 2, 4 confia em 5 e 7 e 12 não confia em ninguém.

Um grupo de habitantes diz-se "pacífico" se satisfizer a seguinte propriedade: se A e B pertencerem ao grupo então existe um caminho de A para B ou de B para A no grafo. Por exemplo, na figura de cima, o grupo constituído pelos habitantes {1,2,3,4,5,7,8} é pacífico. Outros grupos que satisfazem esta propriedade são por exemplo o {12}, {9,10,12} ou {1,2,3,4,5,6}.
De maneira a guiar o Avatar na sua tarefa de manter a harmonia, o espirito guardião descobriu que é necessário ter em conta o "grau de harmonia", que é definido como o tamanho do maior grupo pacifico de habitantes. Para o exemplo de cima, este valor é precisamente sete (número de habitantes no grupo {1,2,3,4,5,7,8}), pois todos os outros possíveis grupos pacíficos têm um tamanho inferior.
O Avatar precisa agora de calcular o grau de harmonia para saber se a paz em que se vive será duradora mas, infelizmente, existem imensos habitantes e ele está com muitas dificuldades. Será que podes ajudá-lo a resolver este problema antes que uma nova guerra comece?
Dado um grafo de relações de confiança como atrás definido, a tua tarefa é determinar o tamanho do maior grupo pacífico, ou seja, o tamanho do maior grupo de nós do grafo tal que se A e B pertencem ao grupo, então existe um caminho de A para B ou de B para A.
Na primeira linha é dado um inteiro, G, indicando o grupo de casos de teste (vê os detalhes de cada grupo na secção "Restrições"). Na segunda linha vêm dois inteiros, N e M, indicando o número de habitantes e o número de relações diretas de confiança, respetivamente. Seguem-se M linhas, cada uma contendo dois inteiros, Ai e Bi, significando que Ai confia em Bi. Os habitantes estão numerados de 1 a N.
O output deve conter apenas uma linha com um inteiro, o grau de harmonia, ou seja, o tamanho do maior grupo pacífico.
São garantidos os seguintes limites em todos os casos de teste que irão ser colocados ao programa:
| 1 ≤ N ≤ 100 000 | Números de habitantes | |
|---|---|---|
| 1 ≤ M ≤ 500 000 | Número de relações de confiança | |
| 1 ≤ Ai, Bi ≤ N |
Os casos de teste deste problema estão organizados em 5 grupos com restrições adicionais diferentes:
| Grupo | Nº de Pontos | Restrições adicionais |
|---|---|---|
| 1 | 20 | Se existe uma aresta de A para B então também existe uma aresta de B para A |
| 2 | 30 | Não existem ciclos no grafo (caminhos de um nó até si próprio) |
| 3 | 30 | Cada habitante confia no máximo num outro habitante |
| 4 | 20 | (nenhum restrição adicional) |
1
8 10
1 2
2 1
4 5
5 6
5 4
6 7
6 8
8 6
7 6
6 5
5
2
8 6
1 2
2 3
2 4
4 5
6 7
8 4
4
3
7 6
1 2
2 3
3 4
4 2
5 6
6 7
4
4
13 12
1 2
2 3
3 4
4 5
5 4
5 3
4 7
7 8
5 6
9 10
10 11
10 12
7
(Exemplo explicado no enunciado do problema)