#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
using namespace std;
#define file "o"
#define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
#define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
#define nl "\n"
#define ss " "
#define pb emplace_back
#define fi first
#define se second
#define sz(s) (int)s.size()
#define all(s) (s).begin(), (s).end()
#define ms(a,x) memset(a, x, sizeof (a))
#define cn continue
#define re exit(0)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll ran(ll l, ll r)
{
return uniform_int_distribution<ll> (l, r)(rng);
}
inline void rf()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
if(fopen(file".inp","r"))
{
freopen(file".inp","r",stdin);
freopen(file".out","w",stdout);
}
}
const int mod=998244353;
const int maxn=3e5+15;
const ll inf=1e18;
template<typename T> inline void add(T &x, const T &y)
{
x+=y;
if(x>=mod) x-=mod;
if(x<0) x+=mod;
}
template<typename T> inline bool maxi(T &a, T b)
{
if(a>=b) return 0;
a=b; return 1;
}
template<typename T> inline bool mini(T &a, T b)
{
if(a<=b) return 0;
a=b; return 1;
}
int n, a[maxn], pmin[maxn], pmax[maxn], smin[maxn], smax[maxn];
bool nxt[maxn];
void solve()
{
cin>>n;
ff(i, 1, n) cin>>a[i];
pmin[0]=mod; pmax[0]=-mod; smin[0]=mod; smax[0]=-mod;
pmin[n+1]=mod; pmax[n+1]=-mod; smin[n+1]=mod; smax[n+1]=-mod;
ff(i, 1, n) pmin[i]=min(pmin[i-1], a[i]), pmax[i]=max(pmax[i-1], a[i]);
ffr(i, n, 1) smin[i]=min(smin[i+1], a[i]), smax[i]=max(smax[i+1], a[i]);
vi q; q.pb(1);
int ans=0;
ff(k, 1, n)
{
vi nq;
for(int l : q)
{
int r=n-k+l-1, low=mod, high=-mod;
if(l>1) low=pmin[l-1], high=pmax[l-1];
if(r<n) mini(low, smin[r+1]), maxi(high, smax[r+1]);
if(a[l]<low || a[l]>high)
{
if(!nxt[l+1]) { nxt[l+1]=1; nq.pb(l+1); }
}
if(l<r && (a[r]<low || a[r]>high))
{
if(!nxt[l]) { nxt[l]=1; nq.pb(l); }
}
}
if(nq.empty()) break;
ans=k;
q = move(nq);
for(int l : q) nxt[l]=0;
}
cout<<ans<<nl;
}
signed main()
{
rf();
int tt; cin>>tt;
while(tt--) solve();
re;
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8zLHVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4MixibWksYm1pMixsemNudCxwb3BjbnQiKQoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGZpbGUgIm8iCiNkZWZpbmUgZmYoaSwgYSwgYikgZm9yKGF1dG8gaT0oYSk7IGk8PShiKTsgKytpKQojZGVmaW5lIGZmcihpLCBiLCBhKSBmb3IoYXV0byBpPShiKTsgaT49KGEpOyAtLWkpCiNkZWZpbmUgbmwgIlxuIgojZGVmaW5lIHNzICIgIgojZGVmaW5lIHBiIGVtcGxhY2VfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgc3oocykgKGludClzLnNpemUoKQojZGVmaW5lIGFsbChzKSAocykuYmVnaW4oKSwgKHMpLmVuZCgpCiNkZWZpbmUgbXMoYSx4KSBtZW1zZXQoYSwgeCwgc2l6ZW9mIChhKSkKI2RlZmluZSBjbiBjb250aW51ZQojZGVmaW5lIHJlIGV4aXQoMCkKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPHBpaT4gdnBpaTsKdHlwZWRlZiB2ZWN0b3I8cGxsPiB2cGxsOwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKbGwgcmFuKGxsIGwsIGxsIHIpCnsKICAgIHJldHVybiB1bmlmb3JtX2ludF9kaXN0cmlidXRpb248bGw+IChsLCByKShybmcpOwp9CgppbmxpbmUgdm9pZCByZigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsgY291dC50aWUobnVsbHB0cik7CiAgICBpZihmb3BlbihmaWxlIi5pbnAiLCJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbihmaWxlIi5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3BlbihmaWxlIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgfQp9Cgpjb25zdCBpbnQgbW9kPTk5ODI0NDM1MzsKY29uc3QgaW50IG1heG49M2U1KzE1Owpjb25zdCBsbCBpbmY9MWUxODsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGFkZChUICZ4LCBjb25zdCBUICZ5KQp7CiAgICB4Kz15OwogICAgaWYoeD49bW9kKSB4LT1tb2Q7CiAgICBpZih4PDApIHgrPW1vZDsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgbWF4aShUICZhLCBUIGIpCnsKICAgIGlmKGE+PWIpIHJldHVybiAwOwogICAgYT1iOyByZXR1cm4gMTsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgbWluaShUICZhLCBUIGIpCnsKICAgIGlmKGE8PWIpIHJldHVybiAwOwogICAgYT1iOyByZXR1cm4gMTsKfQoKaW50IG4sIGFbbWF4bl0sIHBtaW5bbWF4bl0sIHBtYXhbbWF4bl0sIHNtaW5bbWF4bl0sIHNtYXhbbWF4bl07CmJvb2wgbnh0W21heG5dOwoKdm9pZCBzb2x2ZSgpCnsKICAgIGNpbj4+bjsKICAgIGZmKGksIDEsIG4pIGNpbj4+YVtpXTsKICAgIHBtaW5bMF09bW9kOyBwbWF4WzBdPS1tb2Q7IHNtaW5bMF09bW9kOyBzbWF4WzBdPS1tb2Q7CiAgICBwbWluW24rMV09bW9kOyBwbWF4W24rMV09LW1vZDsgc21pbltuKzFdPW1vZDsgc21heFtuKzFdPS1tb2Q7CiAgICBmZihpLCAxLCBuKSBwbWluW2ldPW1pbihwbWluW2ktMV0sIGFbaV0pLCBwbWF4W2ldPW1heChwbWF4W2ktMV0sIGFbaV0pOwogICAgZmZyKGksIG4sIDEpIHNtaW5baV09bWluKHNtaW5baSsxXSwgYVtpXSksIHNtYXhbaV09bWF4KHNtYXhbaSsxXSwgYVtpXSk7CiAgICAKICAgIHZpIHE7IHEucGIoMSk7CiAgICBpbnQgYW5zPTA7CiAgICAKICAgIGZmKGssIDEsIG4pCiAgICB7CiAgICAgICAgdmkgbnE7CiAgICAgICAgZm9yKGludCBsIDogcSkKICAgICAgICB7CiAgICAgICAgICAgIGludCByPW4taytsLTEsIGxvdz1tb2QsIGhpZ2g9LW1vZDsKICAgICAgICAgICAgaWYobD4xKSBsb3c9cG1pbltsLTFdLCBoaWdoPXBtYXhbbC0xXTsKICAgICAgICAgICAgaWYocjxuKSBtaW5pKGxvdywgc21pbltyKzFdKSwgbWF4aShoaWdoLCBzbWF4W3IrMV0pOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYoYVtsXTxsb3cgfHwgYVtsXT5oaWdoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZighbnh0W2wrMV0pIHsgbnh0W2wrMV09MTsgbnEucGIobCsxKTsgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGw8ciAmJiAoYVtyXTxsb3cgfHwgYVtyXT5oaWdoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoIW54dFtsXSkgeyBueHRbbF09MTsgbnEucGIobCk7IH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihucS5lbXB0eSgpKSBicmVhazsKICAgICAgICBhbnM9azsKICAgICAgICBxID0gbW92ZShucSk7CiAgICAgICAgZm9yKGludCBsIDogcSkgbnh0W2xdPTA7IAogICAgfQogICAgY291dDw8YW5zPDxubDsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICByZigpOwogICAgaW50IHR0OyBjaW4+PnR0OwogICAgd2hpbGUodHQtLSkgc29sdmUoKTsKICAgIHJlOwp9