Festa
Uma empresa possui $$N$$ funcionários numerados de $$1$$ a $$N$$. Cada funcionário não tem gerente imediato ou tem exatamente um gerente imediato, que é outro funcionário com um número diferente. Diz-se que um funcionário $$A$$ é superior a outro funcionário $$B$$ se pelo menos uma das seguintes situações for verdadeira:
- O funcionário $$A$$ é o gerente imediato do funcionário $$B$$.
- O funcionário $$B$$ tem um gerente imediato, funcionário $$C$$, de modo que o funcionário $$A$$ seja superior ao funcionário $$C$$.
A empresa não terá um ciclo gerencial. Ou seja, não haverá funcionário que seja superior ao seu gerente imediato.
Hoje a empresa vai organizar uma festa. Isso envolve dividir todos os $$N$$ funcionários em vários grupos: todo funcionário deve pertencer a exatamente um grupo. Além disso, dentro de um único grupo, não deve haver dois funcionários $$A$$ e $$B$$, de modo que $$A$$ seja o superior de $$B$$.
Qual é o número mínimo de grupos que devem ser formados?
Entrada
A primeira linha contém o número inteiro $$N$$ ($$1 \leq N \leq 2000$$) – o número de funcionários.
As próximas $$N$$ linhas contêm os números inteiros $$p_i$$ ($$1 \leq p_i \leq N$$ ou $$p_i = -1$$). Cada $$p_i$$ indica o gerente imediato do $$i$$-ésimo funcionário. Se $$p_i$$ for -1, isso significa que o $$i$$-ésimo funcionário não tem um gerente imediato.
É garantido que nenhum funcionário será o gerente imediato de si mesmo ($$pi \neq i$$). Além disso, não haverá ciclos gerenciais.
Saída
Imprima um único número inteiro indicando o número mínimo de grupos que serão formados na festa.
Exemplos
| ENTRADA | SAÍDA |
| 5 -1 1 2 1 -1 |
3 |
Enviar solução: codeforces
