#include<iostream>
#include<vector>
using namespace std;
const int N = 2e5 + 10;
int t, n, d[N];
vector<int> vec1, vec2;
int main(){
cin >> t;
while(t--){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> d[i];
if(d[i] == 1) vec1.push_back(i);
else vec2.push_back(i);
}
while(vec2.size()){
cout << vec1.back() << ' ' << vec2.back() << '\n';
d[vec1.back()]--;
d[vec2.back()]--;
vec1.pop_back();
if(d[vec2.back()] == 1){
vec1.push_back(vec2.back());
vec2.pop_back();
}
}
cout << vec1.back() << ' ';
vec1.pop_back();
cout << vec1.back() << '\n';
vec1.pop_back();
}
return 0;
}