#include <bits/stdc++.h>
using namespace std;
const long long INF = LLONG_MAX;
const long long SZ = 4e3 + 5;
const long long mod = 1e9 + 7;
long long n, m;
long long a[SZ];
long long mx[SZ], in[SZ];
vector<long long> sg;
long long dp[SZ][SZ];
bool solve(long long in, long long c) {
  if (in == m) return (c == n / 2);
  if (c > n / 2) return 0;
  if (dp[in][c] != -1) return dp[in][c];
  bool p1 = solve(in + 1, sg[in] + c);
  bool p2 = solve(in + 1, c);
  return dp[in][c] = (p1 || p2);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long cs = 0, tc = 1, x, y, z, i, j, k, g, p, q, ans = 0, sum = 0, c = 0,
            t = 0;
  string s, s1, s2;
  cin >> tc;
  while (tc--) {
    cin >> n;
    n *= 2;
    for (i = 1; i <= n; i++) cin >> a[i];
    sg.clear();
    for (i = 0; i < n + 2; i++)
      for (j = 0; j < n + 2; j++) dp[i][j] = -1;
    for (i = 1; i <= n; i++) {
      if (a[i] > mx[i - 1]) {
        mx[i] = a[i];
        in[i] = i;
      } else {
        mx[i] = mx[i - 1];
        in[i] = in[i - 1];
      }
    }
    i = n;
    while (i > 0) {
      p = in[i];
      c = i - p + 1;
      sg.push_back(c);
      i = p - 1;
    }
    reverse(sg.begin(), sg.end());
    m = sg.size();
    (solve(0, 0) == 1) ? cout << "YES\n" : cout << "NO\n";
  }
  return 0;
}
