C. Праздник
ограничение по времени на тест
3 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

В компании работает n сотрудников, пронумерованных от 1 до n. У каждого сотрудника либо нет руководителя, либо есть ровно один непосредственный руководитель — некоторый другой сотрудник с другим номером. Сотрудник A называется начальником другого сотрудника B, если выполняется хотя бы одно из двух условий:

  • Сотрудник A — непосредственный руководитель сотрудника B.
  • У сотрудника B есть непосредственный руководитель, сотрудник C, такой, что A является начальником сотрудника C.

В структуре компании нет циклов. То есть никакой сотрудник не является начальником своего непосредственного руководителя.

Сегодня компания собирается организовать праздник. Для этого необходимо разделить всех n сотрудников на несколько групп: каждый человек должен относиться ровно к одной группе. Более того, в каждой группе не должно быть таких двух сотрудников A и B, что A является начальником B.

Ваша задача — найти наименьшее возможное количество таких групп.

Входные данные

Первая строка содержит целое число n (1 ≤ n ≤ 2000) — количество сотрудников.

Следующие n строк содержат целые числа pi (1 ≤ pi ≤ n или pi = -1). Каждое pi обозначает непосредственного руководителя i-го сотрудника. Если pi равно -1, то i-ый сотрудник не имеет непосредственного руководителя.

Гарантируется, что никакой сотрудник не является своим собственным непосредственным руководителем (pi ≠ i). Также гарантируется, что структура компании не содержит циклов.

Выходные данные

Выведите единственное целое число — минимальное количество групп, на которые можно разделить всех сотрудников.

Примеры
Входные данные
5
-1
1
2
1
-1
Выходные данные
3
Примечание

В первом примере достаточно трех групп:

  • Сотрудник 1
  • Сотрудники 2 и 4
  • Сотрудники 3 и 5