#include <bits/stdc++.h>
using namespace std;
long long int powm(long long int x, long long int y) {
  if (y == 0) return 1;
  if (y == 1) return x;
  long long int ans = 1;
  if (y % 2) return (x * powm((x * x), y / 2));
  return powm((x * x), y / 2);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long int t = 1;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    long long int arr[2 * n];
    long long int fr[2 * n + 1];
    memset(fr, 0, sizeof(fr));
    for (int i = 0; i < 2 * n; i++) {
      cin >> arr[i];
      if (arr[i] < 2 * n + 1) fr[arr[i]]++;
    }
    long long int f = 0;
    for (int i = 1; i < 2 * n + 1; i++) {
      if (fr[i] != 1) {
        cout << "NO" << endl;
        f = 1;
        break;
      }
    }
    if (f) break;
    bool vis[2 * n + 1];
    memset(vis, false, sizeof(vis));
    long long int k = 2 * n;
    long long int s = 1;
    vector<long long int> carr;
    for (int i = 2 * n - 1; i > -1; i--) {
      vis[arr[i]] = true;
      if (arr[i] == k) {
        while (k > 0 && vis[k] == true) k--;
        carr.push_back(s);
        s = 1;
      } else
        s++;
    }
    bool dp[2 * n + 1][carr.size() + 1];
    memset(dp, 0, sizeof(dp));
    for (int i = 0; i < carr.size(); i++) {
      dp[0][i] = 1;
    }
    dp[carr[0]][0] = 1;
    for (int i = 1; i < carr.size(); i++) {
      for (int j = 0; j <= n; j++) {
        if (j - carr[i] >= 0)
          dp[j][i] |= (dp[j - carr[i]][i - 1] | dp[j][i - 1]);
        else
          dp[j][i] |= dp[j][i - 1];
      }
    }
    if (dp[n][carr.size() - 1])
      cout << "YES" << endl;
    else
      cout << "NO" << endl;
  }
  return 0;
}
