#include <iostream>
#include <bits/stdc++.h>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#define You_ss_ef ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pi 3.141592654
#define tc int T; cin >> T; while (T--)
#define FP(_) fixed << std::setprecision(_)
#define Gaza main
#define ll long long
#define ld long double
#define ss << ' '
#define el << '\n'
#define all(_) _.begin(), _.end()
#define rall(_) _.rbegin(), _.rend()
#define uni(_) _.erase(unique(all(_)), _.end())
using namespace std;
void IO() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
int n;
vector <vector <ll>> dp, dpp;
vector <ll> v;
ll solve(int i, int last)
{
if(i > n) return 0;
ll &ret = dp[i][last];
if(~ret) return ret;
ll leave = solve(i+1, last);
ll take = 0;
if(v[i] >= v[last]) take = solve(i+1, i) + 1;
return ret = max(take, leave);
}
ll solve1(int i, int last)
{
if(i > n) return 0;
ll &ret = dpp[i][last];
if(~ret) return ret;
ll leave = solve1(i+1, last);
ll take = 0;
if(v[i] <= v[last]) take = solve1(i+1, i) + 1;
return ret = max(take, leave);
}
void answer()
{
cin >> n;
v = vector <ll> (n+1);
for(int i = 1; i <= n; i++) cin >> v[i];
dpp = dp = vector <vector <ll>> (n+1, vector <ll> (n+1,-1));
ll ans = 0;
for(int i = 1; i <= n; i++) {
ans = max(ans, solve(1,i) + solve1(1,i) - 1);
}
cout << ans;
}
int Gaza()
{ You_ss_ef
IO();
int TC = 1;
cin >> TC;
do {
answer();
TC--;
// if (TC)
cout el;
} while (TC != 0);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8c3RyaW5nPgojZGVmaW5lIFlvdV9zc19lZiBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiNkZWZpbmUgcGkgMy4xNDE1OTI2NTQKI2RlZmluZSB0YyBpbnQgVDsgY2luID4+IFQ7IHdoaWxlIChULS0pCiNkZWZpbmUgRlAoXykgZml4ZWQgPDwgc3RkOjpzZXRwcmVjaXNpb24oXykKI2RlZmluZSBHYXphIG1haW4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIHNzIDw8ICcgJwojZGVmaW5lIGVsIDw8ICdcbicKI2RlZmluZSBhbGwoXykgXy5iZWdpbigpLCBfLmVuZCgpCiNkZWZpbmUgcmFsbChfKSBfLnJiZWdpbigpLCBfLnJlbmQoKQojZGVmaW5lIHVuaShfKSBfLmVyYXNlKHVuaXF1ZShhbGwoXykpLCBfLmVuZCgpKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIElPKCkgewojaWZuZGVmIE9OTElORV9KVURHRQpmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0gCmludCBuOwp2ZWN0b3IgPHZlY3RvciA8bGw+PiBkcCwgZHBwOwp2ZWN0b3IgPGxsPiB2OyAKbGwgc29sdmUoaW50IGksIGludCBsYXN0KQp7CiAgICBpZihpID4gbikgcmV0dXJuIDA7CiAgICBsbCAmcmV0ID0gZHBbaV1bbGFzdF07CiAgICBpZih+cmV0KSByZXR1cm4gcmV0OyAKICAgIGxsIGxlYXZlID0gc29sdmUoaSsxLCBsYXN0KTsKICAgIGxsIHRha2UgPSAwOwogICAgaWYodltpXSA+PSB2W2xhc3RdKSB0YWtlID0gc29sdmUoaSsxLCBpKSArIDE7CiAgICByZXR1cm4gcmV0ID0gbWF4KHRha2UsIGxlYXZlKTsKfQpsbCBzb2x2ZTEoaW50IGksIGludCBsYXN0KSAKewogICAgaWYoaSA+IG4pIHJldHVybiAwOwogICAgbGwgJnJldCA9IGRwcFtpXVtsYXN0XTsKICAgIGlmKH5yZXQpIHJldHVybiByZXQ7IAogICAgbGwgbGVhdmUgPSBzb2x2ZTEoaSsxLCBsYXN0KTsKICAgIGxsIHRha2UgPSAwOwogICAgaWYodltpXSA8PSB2W2xhc3RdKSB0YWtlID0gc29sdmUxKGkrMSwgaSkgKyAxOwogICAgcmV0dXJuIHJldCA9IG1heCh0YWtlLCBsZWF2ZSk7Cn0Kdm9pZCBhbnN3ZXIoKSAKeyAgIAogICAgY2luID4+IG47IAogICAgdiA9IHZlY3RvciA8bGw+IChuKzEpOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiB2W2ldOwogICAgZHBwID0gZHAgPSB2ZWN0b3IgPHZlY3RvciA8bGw+PiAobisxLCB2ZWN0b3IgPGxsPiAobisxLC0xKSk7CiAgICBsbCBhbnMgPSAwOyAKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgYW5zID0gbWF4KGFucywgc29sdmUoMSxpKSArIHNvbHZlMSgxLGkpIC0gMSk7CiAgICB9CiAgICBjb3V0IDw8IGFuczsgCn0KaW50IEdhemEoKQp7ICAgWW91X3NzX2VmICAgCiAgICBJTygpOwogICAgaW50IFRDID0gMTsKICAgIGNpbiA+PiBUQzsKICAgIGRvIHsKICAgICAgICBhbnN3ZXIoKTsKICAgICAgICBUQy0tOwogICAgICAgIC8vIGlmIChUQykKICAgICAgICAgICAgY291dCBlbDsKICAgIH0gd2hpbGUgKFRDICE9IDApOwogICAgcmV0dXJuIDA7Cn0KCg==