Informática Intermediário – Semana 70

por

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