#include <cstdio>
#include <algorithm>
using namespace std;
int parent[1004], ranks[1004];
int T, N;
int cnt;
int Find(int x) {
if (x == parent[x]) {
return x;
}
else {
int y = Find(parent[x]);
parent[x] = y;
return y;
}
}
void Union(int x, int y) {
x = Find(x);
y = Find(y);
if (ranks[x] == 0 && ranks[y] == 0)
cnt++;
if (ranks[x] > ranks[y])
parent[y] = x;
else {
parent[x] = y;
if (ranks[x] == ranks[y])
ranks[y]++;
}
}
int main() {
scanf("%d", &T);
int num;
while (T--) {
scanf("%d", &N);
cnt = 0;
for (int i = 0; i <= N; i++) {
parent[i] = i;
ranks[i] = 0;
}
for (int i = 1; i <= N; i++) {
scanf("%d", &num);
Union(i, num);
}
printf("%d\n", cnt);
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IHBhcmVudFsxMDA0XSwgcmFua3NbMTAwNF07CmludCBULCBOOwppbnQgY250OwoKaW50IEZpbmQoaW50IHgpIHsKCWlmICh4ID09IHBhcmVudFt4XSkgewoJCXJldHVybiB4OwoJfQoJZWxzZSB7CgkJaW50IHkgPSBGaW5kKHBhcmVudFt4XSk7CgkJcGFyZW50W3hdID0geTsKCQlyZXR1cm4geTsKCX0KfQoKdm9pZCBVbmlvbihpbnQgeCwgaW50IHkpIHsKCXggPSBGaW5kKHgpOwoJeSA9IEZpbmQoeSk7CglpZiAocmFua3NbeF0gPT0gMCAmJiByYW5rc1t5XSA9PSAwKQoJCWNudCsrOwoKCWlmIChyYW5rc1t4XSA+IHJhbmtzW3ldKQoJCXBhcmVudFt5XSA9IHg7CgllbHNlIHsKCQlwYXJlbnRbeF0gPSB5OwoJCWlmIChyYW5rc1t4XSA9PSByYW5rc1t5XSkKCQkJcmFua3NbeV0rKzsKCX0KfQoKaW50IG1haW4oKSB7CgoJc2NhbmYoIiVkIiwgJlQpOwoJaW50IG51bTsKCXdoaWxlIChULS0pIHsKCQlzY2FuZigiJWQiLCAmTik7CgkJY250ID0gMDsKCQlmb3IgKGludCBpID0gMDsgaSA8PSBOOyBpKyspIHsKCQkJcGFyZW50W2ldID0gaTsKCQkJcmFua3NbaV0gPSAwOwoJCX0KCQlmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspIHsKCQkJc2NhbmYoIiVkIiwgJm51bSk7CgkJCVVuaW9uKGksIG51bSk7CgkJfQoJCXByaW50ZigiJWRcbiIsIGNudCk7Cgl9CglyZXR1cm4gMDsKfQo=