#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e18 + 7;
const int N = 1e7;
bool isper(int *a, int n, int i) {
  bool f1 = 1, f2 = 1, flag1[i + 1], flag2[n - i + 1];
  memset(flag1, 0, sizeof flag1);
  memset(flag2, 0, sizeof flag2);
  for (int k = 0; k < i; k++)
    if (a[k] <= i) flag1[a[k]] = 1;
  for (int k = 1; k <= i; k++)
    if (!flag1[k]) f1 = 0;
  for (int k = i; k < n; k++)
    if (a[k] <= n - i) flag2[a[k]] = 1;
  for (int k = 1; k <= n - i; k++)
    if (!flag2[k]) f2 = 0;
  if (f1 && f2) return true;
  return false;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    int m = 0;
    int a[n];
    for (int i = 0; i < n; ++i) cin >> a[i], m = max(m, a[i]);
    set<pair<int, int> > res;
    if (isper(a, n, m)) res.insert({m, n - m});
    if (isper(a, n, n - m)) res.insert({n - m, m});
    cout << res.size() << '\n';
    for (auto i : res) cout << i.first << ' ' << i.second << '\n';
  }
  return 0;
}
