某城市有 N 个景点,景点编号 1 \sim N。为了开发景区旅游资源,文旅局决定在景点之间修建免费的单向道路,方便旅客们到更多的景点旅行。
由于财政拨款有限,每个景点最多只能修建一条通往其他景点的单向道路。部分景点地处偏僻,暂时无法修建通往其他景点的单向道路。
现给出每个景点修建的通往其他景点单向道路的数据。请编程计算出:如果从旅客从编号为 i 的景点出发,最多能访问多少个不同的景点?
第 1 行输入一个整数 N,表示景点的总数。
接下来 N 行,每行输入一个整数,代表每个景点的单向道路通往其他景点的编号。请注意,如果某景点不存在通往其他景点的道路,那么该景点将会记录自己的编号。
输出 N 行,第 i 行输出从景点 i 出发,最多能访问到多少个不同的景点。
5 1 3 4 2 4
1 3 3 3 4
8 2 1 4 5 4 6 6 8
2 2 3 2 2 1 2 1
10 2 3 4 5 2 7 8 9 10 10
5 4 4 4 4 5 4 3 2 1
景点 1 没有通往其他景点的道路,因此记录的值为 1。
景点 2 可以通往景点 3,景点 3 可以通往景点 4,景点 4 可以通往景点 2,景点 5 可以通往景点 4。
对于 30\% 的数据,满足 1 \le N \le 1000。
对于 100\% 的数据,满足 1 \le N \le 10^5,每个景点可以通往其他景点的编号一定在 [1, N] 的范围内。