#include <bits/stdc++.h>
using namespace std;
long long visit[4007], possibleLen, dp[4007][4007];
vector<long long> v, lenStore;
bool sos(long long pos, long long len) {
  if (len == possibleLen) return 1;
  if (pos == lenStore.size() || len > possibleLen) return 0;
  if (dp[pos][len] != -1) return dp[pos][len];
  return dp[pos][len] = sos(pos + 1, len) | sos(pos + 1, len + lenStore[pos]);
}
void solve() {
  long long n, i, a, large, pos, j;
  cin >> n;
  n *= 2;
  v.clear();
  for (i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
  }
  pos = n - 1;
  while (pos >= 0) {
    for (i = n; i >= 1; i--) {
      if (visit[i] == 0) {
        large = i;
        break;
      }
    }
    long long newPos;
    for (i = 0; i <= pos; i++) {
      if (v[i] == large) {
        newPos = i;
        break;
      }
    }
    for (i = newPos; i <= pos; i++) visit[v[i]] = 1;
    lenStore.push_back(pos - newPos + 1);
    pos = newPos - 1;
  }
  possibleLen = n / 2;
  reverse(lenStore.begin(), lenStore.end());
  for (i = 0; i <= n; i++) {
    for (j = 0; j <= n; j++) dp[i][j] = -1;
  }
  bool ok = sos(0, 0);
  cout << (ok ? "YES" : "NO") << "\n";
  lenStore.clear();
  memset(visit, 0, sizeof(visit));
}
int main() {
  long long t;
  cin >> t;
  while (t--) solve();
  return 0;
}
