QQ群
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述


王老师看着QQ群的备注陷入了沉思。。。
他觉得是时候给ACM的同学们来一次思政教育了。
但是他最近很忙,所以王老师就想到了一个省时省力的好方法,他转手就把备注名改成了“有问题可以咨询群主姚辉学长”(bushi)。

王老师所在的QQ群总共有 个管理员,N 个管理员是ACM俱乐部的成员,还有一个是他自己。
现在,群里的管理员被分为了两类,一类我们称之为“怨种”,另一类我们称其为“屑”。

如上图所示,姚辉学长和曹怡明学长分别把自己的答疑责任推卸给了曹怡明学长和王和兴老师。

在姚辉->曹怡明->王和兴的推卸链条中,无处推卸责任的王老师就是“怨种”,而推卸了责任的两个学长就是“屑”。

但如果王老师把备注改成了“有问题可以咨询群主姚辉学长”,那么就形成了一个推卸责任的环,整个环上的所有管理员全都变成了“怨种”。

同时,王老师拥有技能“老师の威压”,会迫使被王老师QQ备注指到的同学变成“怨种”,而且这个威压是会随着QQ备注传导的。
如果推卸链条是王和兴->姚辉->曹怡明,那么在链条上的每一个人都变成了“怨种”。
另外,因为王老师是ACM的指导老师,所以他不得不去干活,所以无论在什么情况下,王老师都属于“怨种”。

王老师希望管理员中的“怨种”越多越好,请问他需要怎么修改自己的备注。

输入描述:

输入共两行。
第一行一个数 ,表示除王老师外还有 N 个管理员。
我们认为王老师是第 0 个管理员。
第二行 N 个数,第 i 个数 表示第 i 个管理员的QQ群备注指向了第 a_i 个管理员(如果管理员备注自己的姓名的话,)。

输出描述:

一个数,表示王老师改完备注后群内的“怨种”数量。
示例1

输入

复制
7
2 4 1 3 1 7 3

输出

复制
7

说明

如图,最初的时候,0,1,2,3,4总共5位管理员是“怨种”,王老师改备注名,指向6号管理员,那么6,7两个管理员感受到“老师の威压”,变成了“怨种”。最终群里总共有7个“怨种”,答案为7。

示例2

输入

复制
3
0 0 2

输出

复制
3