#include<iostream>
#include<queue>
#include<algorithm>
#include<string>
struct node
{
int soc,kn;
friend bool operator < (const node &a,const node &b)//友元对运算符<的重载
{
if(a.soc==b.soc)
return a.kn<a.kn;
return a.soc>a.soc;
}
}t,num[1005];
bool cmp(node a,node b)//按照kn从小到大排,soc从大到小
{
if(a.soc==b.soc)
return a.kn<a.kn;
return a.soc>a.soc;
}
using namespace std;
int main()
{
int cn;
cin>>cn;
while(cn--)
{
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>t.soc;
t.kn=i+1;
num[i]=t;
}
sort(num,num+n);//sort(num,num+n,cmp);
for(int i=0,cnt=0;i<n;i++)
{
cout<<num[i].soc<<" "<<num[i].kn<<endl;
}
}
}