#include <bits/stdc++.h>
using namespace std;
int a[200010];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n;
    int a1[3], b[3];
    scanf("%d", &n);
    int maxx = 0;
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
      if (a[i] > a[maxx]) maxx = i;
    }
    int num = 0;
    int c = 0;
    map<int, bool> p;
    for (int i = 1; i <= a[maxx]; i++) {
      if (p[a[i]] == 0 && a[i] <= a[maxx]) {
        p[a[i]] = 1;
        c++;
      }
    }
    int c1 = 0;
    map<int, bool> p1;
    for (int i = a[maxx] + 1; i <= n; i++) {
      if (p1[a[i]] == 0) {
        p1[a[i]] = 1;
      }
    }
    for (int i = 1; i <= n - a[maxx]; i++) {
      if (p1[i]) c1++;
    }
    if (c1 == n - a[maxx] && c == a[maxx]) {
      num++;
      a1[num] = a[maxx];
      b[num] = n - a[maxx];
    }
    c = 0;
    map<int, bool> p2;
    for (int i = n - a[maxx] + 1; i <= n; i++) {
      if (p2[a[i]] == 0 && a[i] <= a[maxx]) {
        p2[a[i]] = 1;
        c++;
      }
    }
    c1 = 0;
    map<int, bool> p3;
    for (int i = 1; i <= n - a[maxx]; i++) {
      if (p3[a[i]] == 0) {
        p3[a[i]] = 1;
      }
    }
    for (int i = 1; i <= n - a[maxx]; i++) {
      if (p3[i]) c1++;
    }
    if (c == a[maxx] && c1 == n - a[maxx]) {
      num++;
      a1[num] = n - a[maxx];
      b[num] = a[maxx];
      if (num == 2 && a1[num] == a1[1]) num--;
    }
    printf("%d\n", num);
    for (int i = num; i >= 1; i--) {
      printf("%d %d\n", a1[i], b[i]);
    }
  }
}
