#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
const long long INF = (1e8);
int dp[(15 + 4)][((1 << 15) + 10)][(15 + 4)];
pair<int, int> pre[(15 + 4)][((1 << 15) + 10)][(15 + 4)];
int sum[((1 << 15) + 10)];
int a[(15 + 4)];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
    }
    int tot = (1 << n) - 1;
    for (int s = 0; s <= tot; s++) {
      sum[s] = 0;
      for (int i = 1; i <= n; i++) {
        if (s & (1 << (i - 1))) {
          sum[s] += a[i];
        }
      }
    }
    for (int s = 0; s <= tot; s++) {
      for (int p = 0; p <= n; p++) {
        for (int b = 0; b <= n; b++) {
          dp[b][s][p] = INF;
        }
      }
    }
    dp[0][0][0] = 0;
    for (int s = 0; s <= tot; s++) {
      int bn = __builtin_popcount(s);
      for (int b = 0; b <= bn; b++) {
        for (int p1 = 0; p1 <= n; p1++) {
          int tla = dp[b][s][p1];
          if (tla < INF) {
            int s1 = s ^ tot;
            for (int s2 = s1; s2; s2 = (s1 & (s2 - 1))) {
              if (sum[s2] <= tla) continue;
              if (s2 >> p1 == 0) continue;
              int p2 = p1 + __builtin_ctz(s2 >> p1) + 1;
              if (dp[b + 1][s | s2][p2] > sum[s2]) {
                dp[b + 1][s | s2][p2] = sum[s2];
                pre[b + 1][s | s2][p2] = make_pair(s, p1);
              }
            }
          }
        }
      }
    }
    int b = 0, p = 0;
    for (int i = n; i >= 1; i--) {
      for (int j = n; j >= 1; j--) {
        if (dp[i][tot][j] < INF) {
          b = i;
          p = j;
          break;
        }
      }
      if (b && p) break;
    }
    vector<pair<int, int> > ans;
    int s = tot;
    while (s) {
      int s1 = pre[b][s][p].first;
      int p1 = pre[b][s][p].second;
      for (int i = 1; i <= n; i++) {
        if (((s1 ^ s) & (1 << (i - 1))) && (i != p)) {
          ans.push_back(make_pair(i, p));
        }
      }
      p = p1;
      b--;
      s = s1;
    }
    printf("%d\n", ans.size());
    for (int i = 0; i < ans.size(); i++) {
      int x = ans[i].first, y = ans[i].second;
      for (int j = 0; j < i; j++) {
        x -= (ans[j].first < ans[i].first);
        y -= (ans[j].first < ans[i].second);
      }
      printf("%d %d\n", x, y);
    }
  }
  return 0;
}
