#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define MOD 1000000007
#define PI 4 * atan(1)
#define sz(A) (int)A.size()
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<long long> vll;
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int uint64;
struct node{
int val;
node *l, *r;
};
node *newnode(int d){
node* n = new node();
n->val = d;
n->l = n->r = NULL;
return n;
}
void insert(node* &root, int d){
if(root == NULL){
root = newnode(d);
return;
}
if(root->val > d) insert(root->l, d);
else insert(root->r, d);
}
int depth(node *root){
if(root == NULL) return 0;
return max(depth(root->l) + 1, depth(root->r) + 1);
}
inline void solve(int test){
int n,x; cin >> n;
node *root = NULL;
for(int i=0; i<n; i++){
cin >> x;
insert(root, x);
}
cout << depth(root) - 1 << "\n";
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int typetest = 1;
if (typetest){
int t;
cin >> t;
cin.ignore();
for(int i=1; i<=t; i++){
solve(i);
}
}
else solve(0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKI2RlZmluZSBQSSA0ICogYXRhbigxKQojZGVmaW5lIHN6KEEpIChpbnQpQS5zaXplKCkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsbDsKdHlwZWRlZiBsb25nIGludCBpbnQzMjsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCB1aW50MzI7CnR5cGVkZWYgbG9uZyBsb25nIGludCBpbnQ2NDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVpbnQ2NDsKCnN0cnVjdCBub2RlewogICAgaW50IHZhbDsKICAgIG5vZGUgKmwsICpyOwp9Owpub2RlICpuZXdub2RlKGludCBkKXsKICAgIG5vZGUqIG4gPSBuZXcgbm9kZSgpOwogICAgbi0+dmFsID0gZDsKICAgIG4tPmwgPSBuLT5yID0gTlVMTDsKICAgIHJldHVybiBuOwp9CnZvaWQgaW5zZXJ0KG5vZGUqICZyb290LCBpbnQgZCl7CiAgICBpZihyb290ID09IE5VTEwpewogICAgICAgIHJvb3QgPSBuZXdub2RlKGQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmKHJvb3QtPnZhbCA+IGQpIGluc2VydChyb290LT5sLCBkKTsKICAgIGVsc2UgaW5zZXJ0KHJvb3QtPnIsIGQpOwp9CmludCBkZXB0aChub2RlICpyb290KXsKICAgIGlmKHJvb3QgPT0gTlVMTCkgcmV0dXJuIDA7CiAgICByZXR1cm4gbWF4KGRlcHRoKHJvb3QtPmwpICsgMSwgZGVwdGgocm9vdC0+cikgKyAxKTsKfQppbmxpbmUgdm9pZCBzb2x2ZShpbnQgdGVzdCl7CiAgICBpbnQgbix4OyBjaW4gPj4gbjsKICAgIG5vZGUgKnJvb3QgPSBOVUxMOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBpbnNlcnQocm9vdCwgeCk7CiAgICB9CiAgICBjb3V0IDw8IGRlcHRoKHJvb3QpIC0gMSA8PCAiXG4iOwoKfSAgIAppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CiAgICBpbnQgdHlwZXRlc3QgPSAxOwogICAgaWYgKHR5cGV0ZXN0KXsKICAgICAgICBpbnQgdDsKICAgICAgICBjaW4gPj4gdDsKICAgICAgICBjaW4uaWdub3JlKCk7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PXQ7IGkrKyl7CiAgICAgICAgICAgIHNvbHZlKGkpOwogICAgICAgIH0KICAgIH0KICAgIGVsc2Ugc29sdmUoMCk7Cn0g