I. 小 P 爱折跃
time limit per test
1 second
memory limit per test
512 megabytes
input
standard input
output
standard output

有 $$$n$$$ 座城市,分别编号为 $$$1, 2, \dots, n$$$,每座城市持有一台传送到其他城市的折跃门。每台折跃门只能传送到指定编号的城市,且每座城市只能被一台折跃门传送到。给定数组 $$$a$$$,其中 $$$a_i$$$ 表示第 $$$i$$$ 座城市持有的折跃门可以传送到第 $$$a_i$$$ 座城市。

为了加快城市之间的交通速度,市长们委托小 P 为他们进行折跃门的调整,使得从任意一座城市出发,都可以通过折跃门到达任意一座城市。

小 P 可以任意交换两座城市持有的折跃门,他希望知道最少需要交换多少次,才能使得从任意一座城市出发,都可以通过折跃门到达任意一座城市。

Input

第一行一个整数 $$$T$$$ ($$$1 \le T \le 10^4$$$),表示测试用例数。

对于每个测试用例:

第一行一个整数 $$$n$$$ ($$$1 \le n \le 10^5$$$),表示城市的数量。

第二行共 $$$n$$$ 个整数 $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le n$$$),表示第 $$$i$$$ 座城市持有的折跃门可以传送到第 $$$a_i$$$ 座城市。

保证所有测试用例的 $$$n$$$ 之和不超过 $$$10^5$$$。

Output

对于每个测试用例,输出一行一个整数,表示最少需要交换多少次,才能使得从任意一座城市出发,都可以通过折跃门到达任意一座城市。

Example
Input
5
1
1
2
1 2
3
1 3 2
4
1 3 2 4
5
3 4 5 2 1
Output
0
1
1
2
1
Note

对于第一组测试用例:显然只有一座城市,不需要交换折跃门,因此答案为 $$$0$$$。

对于第三组测试用例:只需交换城市 1 与其它城市中任意一个折跃门即可使任意两座城市互通,因此答案为 $$$1$$$。