#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<int> a(n);
map<int, vector<int>> p;
for (int i = 0; i < n; i++) {
cin >> a[i];
p[a[i]].push_back(i);
}
int ans = 0;
set<int> ts;
for (int i = 0; i < n - 1; i++) {
if (a[i] > a[i + 1])
ts.insert(i);
}
while (!ts.empty()) {
int i = *ts.begin();
int x = (a[i] > 0) ? a[i] : a[i + 1];
for (int j : p[x]) {
a[j] = 0;
ts.erase(j - 1);
ts.erase(j);
if (j > 0 && a[j - 1] > a[j])
ts.insert(j - 1);
if (j + 1 < n && a[j] > a[j + 1])
ts.insert(j);
}
ans++;
}
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIAogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIHdoaWxlIChULS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICAKICAgICAgICB2ZWN0b3I8aW50PiBhKG4pOwogICAgICAgIG1hcDxpbnQsIHZlY3RvcjxpbnQ+PiBwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgICAgICBwW2FbaV1dLnB1c2hfYmFjayhpKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgc2V0PGludD4gdHM7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIGlmIChhW2ldID4gYVtpICsgMV0pCiAgICAgICAgICAgICAgICB0cy5pbnNlcnQoaSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHdoaWxlICghdHMuZW1wdHkoKSkgewogICAgICAgICAgICBpbnQgaSA9ICp0cy5iZWdpbigpOwogICAgICAgICAgICBpbnQgeCA9IChhW2ldID4gMCkgPyBhW2ldIDogYVtpICsgMV07CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGludCBqIDogcFt4XSkgewogICAgICAgICAgICAgICAgYVtqXSA9IDA7CiAgICAgICAgICAgICAgICB0cy5lcmFzZShqIC0gMSk7CiAgICAgICAgICAgICAgICB0cy5lcmFzZShqKTsKICAgICAgICAgICAgICAgIGlmIChqID4gMCAmJiBhW2ogLSAxXSA+IGFbal0pCiAgICAgICAgICAgICAgICAgICAgdHMuaW5zZXJ0KGogLSAxKTsKICAgICAgICAgICAgICAgIGlmIChqICsgMSA8IG4gJiYgYVtqXSA+IGFbaiArIDFdKQogICAgICAgICAgICAgICAgICAgIHRzLmluc2VydChqKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhbnMrKzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgY291dCA8PCBhbnMgPDwgIlxuIjsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0K