#include using namespace std; ifstream fin("stairway.in"); ofstream fout("stairway.out"); const int maxn = 1e5+2; int t, n, a[maxn], dp[maxn], sz, maxsz; void work(int k) { if (sz%2 == 1) { if (k == dp[sz]) { dp[(++sz)] = k; maxsz = (sz>maxsz) ? sz : maxsz; } else { int i; for (i=1; i<=sz; i+=2) { if(k < dp[i]) { dp[i] = k; sz = i; return; } } } } else { if (k > dp[sz]) { dp[(++sz)] = k; maxsz = (sz>maxsz) ? sz : maxsz; } else { int i; for (i=1; i<=sz; i+=2) { if(k < dp[i]) { dp[i] = k; sz = i; return; } } } } } void solve() { memset(dp, 0, sizeof(dp)); sz = 1; maxsz = 1; dp[1] = a[1]; int i; for(i=2; i<=n; ++i) work(a[i]); if (maxsz%2) --maxsz; fout << maxsz << '\n' ; } void read() { ios_base::sync_with_stdio(false); fin.tie(NULL); fout.tie(NULL); fin >> t ; int l, i; for (l=1; l<=t; ++l) { fin >> n ; memset(a, 0, sizeof(a)); for (i=1; i<=n; ++i) fin >> a[i] ; solve(); } } int main() { read(); return 0; }