#include <bits/stdc++.h>
using namespace std;
inline long long re() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = (x << 3) + (x << 1) + (ch ^ 48);
    ch = getchar();
  }
  return x * f;
}
int a[4004];
bool vis[4004];
int v[4004];
int cnt;
int num[4004];
int n;
int dp[4004][2002];
bool dfs(int p, int num1) {
  if (p > cnt) return 1;
  if (dp[p][num1] != -1) return dp[p][num1];
  int num2 = 2 * n - num1 - num[p];
  int f = 0;
  if (num1 + v[p] <= n) {
    f |= dfs(p + 1, v[p] + num1);
    if (f == 1) return dp[p][num1] = f;
  }
  if (num2 + v[p] <= n) {
    f |= dfs(p + 1, num1);
    if (f == 1) return dp[p][num1] = f;
  }
  return dp[p][num1] = f;
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    cnt = 0;
    memset(vis, 0, sizeof(vis));
    n = re();
    for (int i = 1; i <= 2 * n; i++) {
      a[i] = re();
    }
    int now = 2 * n;
    int ed = 2 * n;
    for (int i = 2 * n; i >= 1; i--) {
      vis[a[i]] = 1;
      if (a[i] == now) {
        v[++cnt] = ed - i + 1;
        ed = i - 1;
        for (int j = 2 * n; j >= 1; j--) {
          if (!vis[j]) {
            now = j;
            break;
          }
        }
      }
    }
    for (int i = 1; i <= cnt; i++)
      for (int j = 0; j <= n; j++) dp[i][j] = -1;
    num[cnt + 1] = 0;
    for (int i = cnt; i >= 1; i--) {
      num[i] = v[i] + num[i + 1];
    }
    if (dfs(1, 0))
      puts("YES");
    else
      puts("NO");
  }
}
