#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define all(a) (a).begin(),(a).end()
#define sz(x) (int)x.size()
#define endl "\n"
#define inf 1000000007
#define FOR(i, a, b) for(int i=a; i<b; i++)
int dp[110] = {0};
void solve(){
int n, m, cost=0, rem;
cin>>n>>m;
vector<int> adj[n];
int arr[n];
FOR(i, 0, n) cin>>arr[i];
sort(arr, arr+n);
if(m<n || n==2){
cout<<"-1"<<endl;
return;
}
FOR(i, 1, n){
cost+=(arr[i]+arr[i-1]);
}
cost+=(arr[0]+arr[n-1]);
rem=m-(n);
cost+=rem*(arr[0]+arr[1]);
cout << cost << endl;
int a=1;
for(int i=0;i<n-1;i++){
cout <<a <<" "<< a+1<< endl;
a++;
}
cout <<"1" <<" "<< n << endl;
for(int i=0;i<(m-n);i++){
cout <<"1" <<" "<<"2" << endl;
}
}
signed main(){
#ifdef _DEBUG
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(0);
int t=1;
cin>>t;
while(t--){
solve();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKGEpIChhKS5iZWdpbigpLChhKS5lbmQoKQojZGVmaW5lIHN6KHgpIChpbnQpeC5zaXplKCkKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBpbmYgMTAwMDAwMDAwNwojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IoaW50IGk9YTsgaTxiOyBpKyspCmludCBkcFsxMTBdID0gezB9OwoKdm9pZCBzb2x2ZSgpewoJaW50IG4sIG0sIGNvc3Q9MCwgcmVtOwoJY2luPj5uPj5tOwoJdmVjdG9yPGludD4gYWRqW25dOwoJaW50IGFycltuXTsKCUZPUihpLCAwLCBuKSBjaW4+PmFycltpXTsKCXNvcnQoYXJyLCBhcnIrbik7CglpZihtPG4gfHwgbj09Mil7CgkJY291dDw8Ii0xIjw8ZW5kbDsKCQlyZXR1cm47Cgl9CglGT1IoaSwgMSwgbil7CgkJY29zdCs9KGFycltpXSthcnJbaS0xXSk7Cgl9Cgljb3N0Kz0oYXJyWzBdK2FycltuLTFdKTsKCXJlbT1tLShuKTsKCWNvc3QrPXJlbSooYXJyWzBdK2FyclsxXSk7Cgljb3V0IDw8IGNvc3QgPDwgZW5kbDsKCWludCBhPTE7Cglmb3IoaW50IGk9MDtpPG4tMTtpKyspewoJCWNvdXQgPDxhIDw8IiAiPDwgYSsxPDwgZW5kbDsKCQlhKys7Cgl9Cgljb3V0IDw8IjEiIDw8IiAiPDwgbiA8PCBlbmRsOwoJZm9yKGludCBpPTA7aTwobS1uKTtpKyspewoJCWNvdXQgPDwiMSIgPDwiICI8PCIyIiA8PCBlbmRsOwoJfQp9CnNpZ25lZCBtYWluKCl7CgkjaWZkZWYgX0RFQlVHCgkJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICAJZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKCSNlbmRpZgoJCglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKDApOwoJaW50IHQ9MTsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJc29sdmUoKTsKCX0KCXJldHVybiAwOwogCn0=