#include <bits/stdc++.h>
using namespace std;
long long power(long long x, unsigned long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) {
      res = res * x;
    }
    y = y >> 1;
    x = x * x;
  }
  return res;
}
long long powermod(long long x, unsigned long long y, long long p) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) {
      res = (res * x) % p;
    }
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
long long Mod(long long x, long long m) { return (x % m + m) % m; }
long long min(long long a, long long b) { return a < b ? a : b; }
long long max(long long a, long long b) { return a > b ? a : b; }
long long dp[4005][4005];
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long t;
  cin >> t;
  while (t--) {
    long long n, m;
    cin >> n;
    long long arr[2 * n];
    for (long long i = 0; i < 2 * n + 5; i++) {
      for (long long j = 0; j < 2 * n + 5; j++) {
        dp[i][j] = 0;
      }
    }
    for (long long i = 0; i < 2 * n; i++) {
      cin >> arr[i];
    }
    set<long long, greater<long long>> s;
    for (long long i = 1; i <= 2 * n; i++) {
      s.insert(i);
    }
    vector<long long> v;
    long long sz = 0;
    for (long long i = 2 * n - 1; i >= 0; i--) {
      long long x = arr[i];
      if (*s.begin() == x) {
        sz++;
        s.erase(s.begin());
        v.push_back(sz);
        sz = 0;
      } else {
        sz++;
        s.erase(x);
      }
    }
    m = v.size();
    for (long long i = 0; i <= n; i++) {
      for (long long j = 0; j <= m; j++) {
        if (i == 0) {
          dp[i][j] = 1;
        }
        if (j == 0) {
          continue;
        } else if (v[j - 1] > i) {
          dp[i][j] = dp[i][j - 1];
        } else {
          dp[i][j] = dp[i][j - 1] || dp[i - v[j - 1]][j - 1];
        }
      }
    }
    if (dp[n][m]) {
      cout << "YES\n";
    } else {
      cout << "NO\n";
    }
  }
  return 0;
}
