#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define siz(x) (int)(x.size())
#define all(x) x.begin(), x.end()
#define debug_arr(x,len) for(int _=1; _<=len; _++) cout<<x[_]<<" "; cout<<'\n';
#define debug(x) cout<<'\n'<<#x<<": "<<x<<'\n';
const int maxN = 2e5+5;
int n, a[maxN], truoc[maxN], sau[maxN], truoc_a[maxN], sau_a[maxN];
struct custom_set
{
bool operator()(int a1, int a2) const
{
return max(truoc[a1], sau[a1]) < max(truoc[a2], sau[a2]);
}
};
void solve()
{
int ans = 0;
set<int, custom_set>clone;
deque<pair<int,int>>dq;
for(int i=1; i<=n; i+=1) dq.push_back({a[i], i});
sort(all(dq), greater<pair<int,int>>());
set<int>se;
for(int i=1; i<=n; i+=1) se.insert(i);
for(int i=0; i<n; i+=1)
{
int need = dq[i].fi, loc = dq[i].se;
bool ok = 1;
if(clone.empty()) ok = 0;
else
{
int tmp = *clone.rbegin();
// if(loc == 4)
// {
// for(auto j: clone) cout<<truoc[j]<<" "<<sau[j]<<'\n';
// }
if(max(truoc[tmp], sau[tmp]) == need) ok = 1;
else ok = 0;
}
if(!ok)
{
ans++;
auto tmp = se.upper_bound(loc);
if(tmp == se.end()) sau[ans] = 0;
else sau[ans] = a[*tmp];
tmp = se.lower_bound(loc);
if(tmp == se.begin()) truoc[ans] = 0;
else
{
tmp--;
truoc[ans] = a[*tmp];
}
clone.insert(ans);
}
else
{
int cur = *clone.rbegin();
// cout<<truoc[cur]<<" "<<sau[cur]<<'\n';
clone.erase(cur);
if(sau[cur] == need)
{
auto tmp = se.upper_bound(loc);
if(tmp == se.end()) sau[cur] = 0;
else sau[cur] = a[*tmp];
}
else
{
auto tmp = se.lower_bound(loc);
if(tmp == se.begin()) truoc[cur] = 0;
else
{
tmp--;
truoc[cur] = a[*tmp];
}
}
// cout<<truoc[cur]<<" "<<sau[cur]<<'\n';
clone.insert(cur);
}
se.erase(loc);
}
cout<<ans<<'\n';
}
int32_t main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
int test=1;
cin>>test;
while(test--)
{
cin>>n;
for(int i=0; i<=n+1; i+=1) a[i] = 0;
for(int i=1; i<=n; i+=1) cin>>a[i];
solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzaXooeCkgKGludCkoeC5zaXplKCkpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGRlYnVnX2Fycih4LGxlbikgZm9yKGludCBfPTE7IF88PWxlbjsgXysrKSBjb3V0PDx4W19dPDwiICI7IGNvdXQ8PCdcbic7CiNkZWZpbmUgZGVidWcoeCkgY291dDw8J1xuJzw8I3g8PCI6ICI8PHg8PCdcbic7CmNvbnN0IGludCBtYXhOID0gMmU1KzU7CgppbnQgbiwgYVttYXhOXSwgdHJ1b2NbbWF4Tl0sIHNhdVttYXhOXSwgdHJ1b2NfYVttYXhOXSwgc2F1X2FbbWF4Tl07CgpzdHJ1Y3QgY3VzdG9tX3NldAp7CiAgICBib29sIG9wZXJhdG9yKCkoaW50IGExLCBpbnQgYTIpIGNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIG1heCh0cnVvY1thMV0sIHNhdVthMV0pIDwgbWF4KHRydW9jW2EyXSwgc2F1W2EyXSk7CiAgICB9Cn07Cgp2b2lkIHNvbHZlKCkKewogICAgaW50IGFucyA9IDA7CiAgICBzZXQ8aW50LCBjdXN0b21fc2V0PmNsb25lOwogICAgZGVxdWU8cGFpcjxpbnQsaW50Pj5kcTsKICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKz0xKSBkcS5wdXNoX2JhY2soe2FbaV0sIGl9KTsKICAgIHNvcnQoYWxsKGRxKSwgZ3JlYXRlcjxwYWlyPGludCxpbnQ+PigpKTsKICAgIHNldDxpbnQ+c2U7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSs9MSkgc2UuaW5zZXJ0KGkpOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSs9MSkKICAgIHsKICAgICAgICBpbnQgbmVlZCA9IGRxW2ldLmZpLCBsb2MgPSBkcVtpXS5zZTsKICAgICAgICBib29sIG9rID0gMTsKICAgICAgICBpZihjbG9uZS5lbXB0eSgpKSBvayA9IDA7CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaW50IHRtcCA9ICpjbG9uZS5yYmVnaW4oKTsKICAgICAgICAgICAgLy8gaWYobG9jID09IDQpCiAgICAgICAgICAgIC8vIHsKICAgICAgICAgICAgLy8gICAgIGZvcihhdXRvIGo6IGNsb25lKSBjb3V0PDx0cnVvY1tqXTw8IiAiPDxzYXVbal08PCdcbic7CiAgICAgICAgICAgIC8vIH0KICAgICAgICAgICAgaWYobWF4KHRydW9jW3RtcF0sIHNhdVt0bXBdKSA9PSBuZWVkKSBvayA9IDE7CiAgICAgICAgICAgIGVsc2Ugb2sgPSAwOwogICAgICAgIH0KICAgICAgICBpZighb2spCiAgICAgICAgewogICAgICAgICAgICBhbnMrKzsKICAgICAgICAgICAgYXV0byB0bXAgPSBzZS51cHBlcl9ib3VuZChsb2MpOwogICAgICAgICAgICBpZih0bXAgPT0gc2UuZW5kKCkpIHNhdVthbnNdID0gMDsKICAgICAgICAgICAgZWxzZSBzYXVbYW5zXSA9IGFbKnRtcF07CiAgICAgICAgICAgIHRtcCA9IHNlLmxvd2VyX2JvdW5kKGxvYyk7CiAgICAgICAgICAgIGlmKHRtcCA9PSBzZS5iZWdpbigpKSB0cnVvY1thbnNdID0gMDsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0bXAtLTsKICAgICAgICAgICAgICAgIHRydW9jW2Fuc10gPSBhWyp0bXBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNsb25lLmluc2VydChhbnMpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpbnQgY3VyID0gKmNsb25lLnJiZWdpbigpOwogICAgICAgICAgICAvLyBjb3V0PDx0cnVvY1tjdXJdPDwiICI8PHNhdVtjdXJdPDwnXG4nOwogICAgICAgICAgICBjbG9uZS5lcmFzZShjdXIpOwogICAgICAgICAgICBpZihzYXVbY3VyXSA9PSBuZWVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhdXRvIHRtcCA9IHNlLnVwcGVyX2JvdW5kKGxvYyk7CiAgICAgICAgICAgICAgICBpZih0bXAgPT0gc2UuZW5kKCkpIHNhdVtjdXJdID0gMDsKICAgICAgICAgICAgICAgIGVsc2Ugc2F1W2N1cl0gPSBhWyp0bXBdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYXV0byB0bXAgPSBzZS5sb3dlcl9ib3VuZChsb2MpOwogICAgICAgICAgICAgICAgaWYodG1wID09IHNlLmJlZ2luKCkpIHRydW9jW2N1cl0gPSAwOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHRtcC0tOwogICAgICAgICAgICAgICAgICAgIHRydW9jW2N1cl0gPSBhWyp0bXBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGNvdXQ8PHRydW9jW2N1cl08PCIgIjw8c2F1W2N1cl08PCdcbic7CiAgICAgICAgICAgIGNsb25lLmluc2VydChjdXIpOwogICAgICAgIH0KICAgICAgICBzZS5lcmFzZShsb2MpOwogICAgfQogICAgY291dDw8YW5zPDwnXG4nOwp9CgppbnQzMl90IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwogICAgaW50IHRlc3Q9MTsKICAgIGNpbj4+dGVzdDsKICAgIHdoaWxlKHRlc3QtLSkKICAgIHsKICAgICAgICBjaW4+Pm47CiAgICAgICAgZm9yKGludCBpPTA7IGk8PW4rMTsgaSs9MSkgYVtpXSA9IDA7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrPTEpIGNpbj4+YVtpXTsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9