#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct edges
{
ll val,u,v;
edges(){}
edges(ll _val,ll _u,ll _v)
{
val=_val;
u=_u;
v=_v;
}
};
bool cmp(edges a,edges b)
{
if(a.val<b.val)return 1;
return 0;
}
vector<edges>edge,edge2;
vector<pair<ll,ll> >ans;
ll tes;
ll n,m,arr[1005];
ll degree[1005];
int main()
{
scanf("%lld",&tes);
for(ll cas=1;cas<=tes;cas++)
{
edge.clear();
edge2.clear();
ans.clear();
scanf("%lld %lld",&n,&m);
for(ll i=1;i<=n;i++){scanf("%lld",&arr[i]);degree[i]=0;}
for(ll i=1;i<=n;i++)
{
for(ll j=i+1;j<=n;j++)
{
edge.push_back(edges(arr[i]+arr[j],i,j));
}
}
sort(edge.begin(),edge.end(),cmp);
bool f=0;
ll ans2=0;
for(ll i=0;i<edge.size();i++)
{
ll u=edge[i].u;
ll v=edge[i].v;
if(degree[u]<2 && degree[v]<2)
{
// cout<<u<<" "<<v<<endl;
if(m>0)
{
m--;
ans.push_back(make_pair(u,v));
degree[u]++;
degree[v]++;
ans2+=edge[i].val;
}
else {f=1;break;}
}
else edge2.push_back(edge[i]);
}
// cout<<m<<endl;
if(f){printf("-1\n");continue;}
sort(edge2.begin(),edge2.end(),cmp);
reverse(edge2.begin(),edge2.end());
while(m>0 && edge2.size()>0)
{
ans2+=edge2[edge2.size()-1].val;
ans.push_back(make_pair(edge2[edge2.size()-1].u,edge2[edge2.size()-1].v));
edge2.pop_back();
m--;
}
while(m>0)
{
ans2+=edge[0].val;
ans.push_back(make_pair(edge[0].u,edge[0].v));
m--;
}
cout<<ans2<<endl;
for(ll i=0;i<ans.size();i++)
{
printf("%lld %lld\n",ans[i].first,ans[i].second);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCgpzdHJ1Y3QgZWRnZXMKewogICAgbGwgdmFsLHUsdjsKICAgIGVkZ2VzKCl7fQogICAgZWRnZXMobGwgX3ZhbCxsbCBfdSxsbCBfdikKICAgIHsKICAgICAgICB2YWw9X3ZhbDsKICAgICAgICB1PV91OwogICAgICAgIHY9X3Y7CiAgICB9Cn07Cgpib29sIGNtcChlZGdlcyBhLGVkZ2VzIGIpCnsKICAgIGlmKGEudmFsPGIudmFsKXJldHVybiAxOwogICAgcmV0dXJuIDA7Cn0KCnZlY3RvcjxlZGdlcz5lZGdlLGVkZ2UyOwp2ZWN0b3I8cGFpcjxsbCxsbD4gPmFuczsKbGwgdGVzOwpsbCBuLG0sYXJyWzEwMDVdOwpsbCBkZWdyZWVbMTAwNV07CgppbnQgbWFpbigpCnsKICAgIHNjYW5mKCIlbGxkIiwmdGVzKTsKICAgIGZvcihsbCBjYXM9MTtjYXM8PXRlcztjYXMrKykKICAgIHsKICAgICAgICBlZGdlLmNsZWFyKCk7CiAgICAgICAgZWRnZTIuY2xlYXIoKTsKICAgICAgICBhbnMuY2xlYXIoKTsKICAgICAgICBzY2FuZigiJWxsZCAlbGxkIiwmbiwmbSk7CiAgICAgICAgZm9yKGxsIGk9MTtpPD1uO2krKyl7c2NhbmYoIiVsbGQiLCZhcnJbaV0pO2RlZ3JlZVtpXT0wO30KICAgICAgICBmb3IobGwgaT0xO2k8PW47aSsrKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGxsIGo9aSsxO2o8PW47aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlZGdlLnB1c2hfYmFjayhlZGdlcyhhcnJbaV0rYXJyW2pdLGksaikpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNvcnQoZWRnZS5iZWdpbigpLGVkZ2UuZW5kKCksY21wKTsKCgoKICAgICAgICBib29sIGY9MDsKICAgICAgICBsbCBhbnMyPTA7CgogICAgICAgIGZvcihsbCBpPTA7aTxlZGdlLnNpemUoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICBsbCB1PWVkZ2VbaV0udTsKICAgICAgICAgICAgbGwgdj1lZGdlW2ldLnY7CgogICAgICAgICAgICBpZihkZWdyZWVbdV08MiAmJiBkZWdyZWVbdl08MikKICAgICAgICAgICAgewovLyAgICAgICAgICAgICAgICBjb3V0PDx1PDwiICI8PHY8PGVuZGw7CiAgICAgICAgICAgICAgICBpZihtPjApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbS0tOwogICAgICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2sobWFrZV9wYWlyKHUsdikpOwogICAgICAgICAgICAgICAgICAgIGRlZ3JlZVt1XSsrOwogICAgICAgICAgICAgICAgICAgIGRlZ3JlZVt2XSsrOwogICAgICAgICAgICAgICAgICAgIGFuczIrPWVkZ2VbaV0udmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7Zj0xO2JyZWFrO30KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGVkZ2UyLnB1c2hfYmFjayhlZGdlW2ldKTsKICAgICAgICB9Ci8vICAgICAgICBjb3V0PDxtPDxlbmRsOwoKCiAgICAgICAgaWYoZil7cHJpbnRmKCItMVxuIik7Y29udGludWU7fQoKICAgICAgICBzb3J0KGVkZ2UyLmJlZ2luKCksZWRnZTIuZW5kKCksY21wKTsKICAgICAgICByZXZlcnNlKGVkZ2UyLmJlZ2luKCksZWRnZTIuZW5kKCkpOwoKICAgICAgICB3aGlsZShtPjAgJiYgZWRnZTIuc2l6ZSgpPjApCiAgICAgICAgewogICAgICAgICAgICBhbnMyKz1lZGdlMltlZGdlMi5zaXplKCktMV0udmFsOwogICAgICAgICAgICBhbnMucHVzaF9iYWNrKG1ha2VfcGFpcihlZGdlMltlZGdlMi5zaXplKCktMV0udSxlZGdlMltlZGdlMi5zaXplKCktMV0udikpOwogICAgICAgICAgICBlZGdlMi5wb3BfYmFjaygpOwogICAgICAgICAgICBtLS07CiAgICAgICAgfQoKICAgICAgICB3aGlsZShtPjApCiAgICAgICAgewogICAgICAgICAgICBhbnMyKz1lZGdlWzBdLnZhbDsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayhtYWtlX3BhaXIoZWRnZVswXS51LGVkZ2VbMF0udikpOwogICAgICAgICAgICBtLS07CiAgICAgICAgfQoKICAgICAgICBjb3V0PDxhbnMyPDxlbmRsOwogICAgICAgIGZvcihsbCBpPTA7aTxhbnMuc2l6ZSgpO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJWxsZCAlbGxkXG4iLGFuc1tpXS5maXJzdCxhbnNbaV0uc2Vjb25kKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=