#include<bits/stdc++.h>
#define ll long long
using namespace std;

const int MAXN = 5e5+1;
int dp[MAXN], a[MAXN], fen[MAXN];
int n;

void add(int i, int x) {
  i++;
  for(; i<=n+1; i += i&-i) fen[i]=max(fen[i],x);
}

int get(int i) {
  i++;
  int ret=0;
  for(; i; i -= i&-i) ret=max(ret, fen[i]);
  return ret;
}

int main() {
  int t; cin >> t;
  while(t--) {
    cin >> n;
    stack<int>st; st.push(0);
    vector<int>a(n+1); 
    for(int i=1; i<n+1; i++) {
      cin>>a[i];
      dp[i] = get(a[i])+1;
      add(a[i], dp[i]);
      while(!st.empty() && a[st.top()] <= a[i]) {
        add(a[st.top()], dp[st.top()] + 1);
        st.pop();
      }
      st.push(i);
    }
    cout << *max_element(dp+1, dp+n+1) << endl;
    for(int i=1; i<n+2; i++) fen[i]=0;
  }
}