Problem I: jyl 's party

Problem I: jyl 's party

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 127  Solved: 25
[Submit] [Status] [Web Board] [Creator:]

Description

上次大龙学长分配完工作之后,临近新年,现在阔绰的大龙学长又要给所有的工人开一个party,以下是员工的等级规则:

        a 是 b 的上级,那a的等级就会比b高

        在上面的基础上,b 是 c 的上级的话,那a的等级也会比b高,b的等级也会比c高

在开party的时候也会有一个规则,他需要分k个组,每个组的工人两两之间不能存在任意一个高于或者低于任意一个的情况,请你帮大龙学长找出他最少可以把这些工人分多少组

Input

有多组case,保证每个文本中n的和不超过2e4

每组的第一行,一个n代表n个工人(1 <= n <= 2000)

接下来n个数,a[1],a[2],a[3],,,,a[n],a[i] ∈ {-1,[1,n] },a[i] 如果为-1,代表第i个工人没有上级,其余的a[i]代表的是第i个人的上级(1 <= a[i] <= n)

Output

对于每组数据输出一行,代表大龙学长最少需要把这些工人分多少组

Sample Input Copy

5
-1
1
2
1
-1

Sample Output Copy

3