#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long cl(long double a) {
  if (a > (long long)a) {
    return (long long)a + 1;
  } else {
    return (long long)a;
  }
}
long long flr(long double a) { return (long long)a; }
const long long M = 4002;
long long n, arr[M];
vector<long long> lst;
long long dp[M][M];
long long recur(long long i, long long sm) {
  if (sm == n) {
    return 1;
  }
  if (i == lst.size()) {
    return 0;
  }
  if (dp[i][sm] != -1) return dp[i][sm];
  long long ans = recur(i + 1, sm);
  if (sm + lst[i] <= n) {
    ans |= recur(i + 1, sm + lst[i]);
  }
  dp[i][sm] = ans;
  return ans;
}
void solve() {
  cin >> n;
  for (long long i = 0; i < 2 * n; i++) cin >> arr[i];
  lst.clear();
  long long cnt = 1;
  long long mx = arr[0];
  bool flag = true;
  for (long long i = 1; i < 2 * n; i++) {
    if (arr[i] > mx) {
      mx = arr[i];
      lst.push_back(cnt);
      cnt = 1;
    } else {
      cnt++;
    }
  }
  lst.push_back(cnt);
  for (long long i = 0; i <= lst.size(); i++) {
    for (long long j = 0; j <= n; j++) {
      dp[i][j] = -1;
    }
  }
  if (recur(0, 0)) {
    cout << "YES\n";
  } else {
    cout << "NO\n";
  }
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t;
  cin >> t;
  while (t--) solve();
}
