黑手党(Mafia)是一款深受信息学奥林匹克竞赛高中选手喜爱的社交游戏,他们通常在夏令营、冬令营和国家级比赛的深夜里,一边喝着各种水果汽水一边玩这个游戏。这个游戏不在于输赢,而在于重在参与,就像比赛一样。
为了解决这个任务,你不需要知道黑手党的具体规则:你只需要知道,部分玩家是“暴徒”(mobsters),其余玩家是“平民”(civilians)。暴徒知道每个人的身份,但平民不知道。平民在游戏过程中试图找出谁是暴徒。
在当前轮的游戏中,在目前幸存的 $N$ 名玩家中,每个人都恰好指控了另一名玩家,声称对方是暴徒。平民只是在瞎猜,而暴徒指控的都是平民,以此假装自己一无所知。
在不知道谁是暴徒,但知道谁指控了谁的情况下,请确定这些玩家中最多可能有多少个暴徒!
输入格式
输入的第一行包含一个整数 $N$($2 \le N \le 500\,000$),表示玩家的人数。玩家用 $1$ 到 $N$ 的整数进行编号。
接下来的 $N$ 行中,第 $K$ 行包含玩家 $K$ 所指控的玩家编号。(没有玩家会指控自己。)
输出格式
输出的第一行也是唯一的一行,应包含最多可能的暴徒人数。
子任务
- 在价值 40 分的测试数据中,满足 $N < 15$。
- 在价值 80 分的测试数据中,满足 $N \le 2000$。
样例
输入样例 1
3 2 1 1
输出样例 1
2
输入样例 2
3 2 3 1
输出样例 2
1
输入样例 3
7 3 3 4 5 6 4 4
输出样例 3
4
说明
样例 1 说明:暴徒可以是玩家 2 和玩家 3。
样例 2 说明:暴徒可以是任意一名玩家,但不能有更多暴徒,因为那意味着他们中的一个指控了另一个。