#include <bits/stdc++.h>
using namespace std;
int calc_new_max_num(vector<int>& num_counter, int& num_count_pointer) {
  for (int i = num_count_pointer; i >= 0; i--) {
    if (num_counter[i] == 0) {
      num_count_pointer = i;
      return i;
    }
  }
  return 0;
}
void divide_length(const vector<int>& merge_array, int n, vector<int>& res) {
  vector<int> num_counter(2 * n + 1, 0);
  int num_count_pointer = 2 * n;
  int next_max_num = 2 * n;
  int max_num_index = 2 * n;
  for (int i = 2 * n - 1; i >= 0; i--) {
    num_counter[merge_array[i]] = 1;
    if (merge_array[i] == next_max_num) {
      res.push_back(max_num_index - i);
      max_num_index = i;
      next_max_num = calc_new_max_num(num_counter, num_count_pointer);
    }
  }
}
int main() {
  int T;
  cin >> T;
  while (T--) {
    int n;
    cin >> n;
    vector<int> merged_array(2 * n, 0);
    for (int i = 0; i < 2 * n; i++) {
      cin >> merged_array[i];
    }
    vector<int> divided_array;
    divide_length(merged_array, n, divided_array);
    vector<int> dp(n + 1, 0);
    dp[0] = 1;
    for (int len_array : divided_array) {
      for (int j = n; j - len_array >= 0; j--) {
        if (dp[j - len_array]) dp[j] = 1;
      }
    }
    puts(dp[n] == 1 ? "YES" : "NO");
  }
}
