#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ll t;
cin >> t;
while (t--) {
ll n;
cin >> n;
vector<ll> G[n + 1];
for (int i = 1; i <= n - 1; i++) {
ll y;
cin >> y;
G[y].push_back(i);
}
vector<ll> l, r;
for (int i = 1; i <= n; i++) {
if (G[i].size() > 0)
l.push_back(G[i].size());
}
l.push_back(1);
sort(l.begin(), l.end(), greater<ll>());
ll c = 0;
// FIRST STAGE
while (!l.empty()) {
sort(l.begin(), l.end(), greater<ll>());
// decrease all r by 1
vector<ll> r1;
for (ll x : r) {
if (x - 1 > 0) r1.push_back(x - 1);
}
r = r1;
c++;
ll largest = l[0];
l.erase(l.begin());
if (largest - 1 > 0)
r.push_back(largest - 1);
}
// SECOND STAGE
while (!r.empty()) {
vector<ll> r1;
for (ll x : r) {
if (x - 1 > 0) r1.push_back(x - 1);
}
r = r1;
c++;
if (!r.empty()) {
sort(r.begin(), r.end(), greater<ll>());
r[0]--;
if (r[0] == 0) r.erase(r.begin());
}
}
cout << c << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmludCBtYWluKCkgewogICAgbGwgdDsKICAgIGNpbiA+PiB0OwoKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBsbCBuOwogICAgICAgIGNpbiA+PiBuOwoKICAgICAgICB2ZWN0b3I8bGw+IEdbbiArIDFdOwoKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIGxsIHk7CiAgICAgICAgICAgIGNpbiA+PiB5OwogICAgICAgICAgICBHW3ldLnB1c2hfYmFjayhpKTsKICAgICAgICB9CgogICAgICAgIHZlY3RvcjxsbD4gbCwgcjsKCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChHW2ldLnNpemUoKSA+IDApCiAgICAgICAgICAgICAgICBsLnB1c2hfYmFjayhHW2ldLnNpemUoKSk7CiAgICAgICAgfQoKICAgICAgICBsLnB1c2hfYmFjaygxKTsKICAgICAgICBzb3J0KGwuYmVnaW4oKSwgbC5lbmQoKSwgZ3JlYXRlcjxsbD4oKSk7CgogICAgICAgIGxsIGMgPSAwOwoKICAgICAgICAvLyBGSVJTVCBTVEFHRQogICAgICAgIHdoaWxlICghbC5lbXB0eSgpKSB7CiAgICAgICAgICAgIHNvcnQobC5iZWdpbigpLCBsLmVuZCgpLCBncmVhdGVyPGxsPigpKTsKCiAgICAgICAgICAgIC8vIGRlY3JlYXNlIGFsbCByIGJ5IDEKICAgICAgICAgICAgdmVjdG9yPGxsPiByMTsKICAgICAgICAgICAgZm9yIChsbCB4IDogcikgewogICAgICAgICAgICAgICAgaWYgKHggLSAxID4gMCkgcjEucHVzaF9iYWNrKHggLSAxKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByID0gcjE7CgogICAgICAgICAgICBjKys7CgogICAgICAgICAgICBsbCBsYXJnZXN0ID0gbFswXTsKICAgICAgICAgICAgbC5lcmFzZShsLmJlZ2luKCkpOwoKICAgICAgICAgICAgaWYgKGxhcmdlc3QgLSAxID4gMCkKICAgICAgICAgICAgICAgIHIucHVzaF9iYWNrKGxhcmdlc3QgLSAxKTsKICAgICAgICB9CgogICAgICAgIC8vIFNFQ09ORCBTVEFHRQogICAgICAgIHdoaWxlICghci5lbXB0eSgpKSB7CgogICAgICAgICAgICB2ZWN0b3I8bGw+IHIxOwogICAgICAgICAgICBmb3IgKGxsIHggOiByKSB7CiAgICAgICAgICAgICAgICBpZiAoeCAtIDEgPiAwKSByMS5wdXNoX2JhY2soeCAtIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHIgPSByMTsKCiAgICAgICAgICAgIGMrKzsKCiAgICAgICAgICAgIGlmICghci5lbXB0eSgpKSB7CiAgICAgICAgICAgICAgICBzb3J0KHIuYmVnaW4oKSwgci5lbmQoKSwgZ3JlYXRlcjxsbD4oKSk7CiAgICAgICAgICAgICAgICByWzBdLS07CiAgICAgICAgICAgICAgICBpZiAoclswXSA9PSAwKSByLmVyYXNlKHIuYmVnaW4oKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgYyA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==