/***
* ii. ;9ABH,
* SA391, .r9GG35&G
* ii13Gh; i3X31i;:,rB1
* iMs,:,i5895, .5G91:,:;:s1:8A
* 33::::,,;5G5, ,58Si,,:::,sHX;iH1
* Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG
* .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8
* :SB9s:,............................,,,.,,,SASh53h,1G.
* .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,
* ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi
* i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1
* 59;.....,. .,,,,,,,,,,,... .............,..:1;.:&s
* s8,..;53S5S3s. .,,,,,,,.,.. i15S5h1:.........,,,..,,:99
* 93.:39s:rSGB@A; ..,,,,..... .SG3hhh9G&BGi..,,,,,,,,,,,,.,83
* G5.G8 9#@@@@@X. .,,,,,,..... iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh
* Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:
* ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M; ....,,,,,,,,S8
* X3 iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs ...,,,,,,,:Gs
* r8, ,,,...,,,,,,,,,,..... ,h8XABMMHX3r. .,,,,,,,.rX:
* :9, . .:,..,:;;;::,.,,,,,.. .,,. ..,,,,,,.59
* .Si ,:.i8HBMMMMMB&5,.... . .,,,,,.sMr
* SS :: h@@@@@@@@@@#; . ... . ..,,,,iM5
* 91 . ;:.,1&@@@@@@MXs. . .,,:,:&S
* hS .... .:;,,,i3MMS1;..,..... . . ... ..,:,.99
* ,8; ..... .,:,..,8Ms:;,,,... .,::.83
* s&: .... .sS553B@@HX3s;,. .,;13h. .:::&1
* SXr . ...;s3G99XA&X88Shss11155hi. ,;:h&,
* iH8: . .. ,;iiii;,::,,,,,. .;irHA
* ,8X5; . ....... ,;iihS8Gi
* 1831, .,;irrrrrs&@
* ;5A8r. .:;iiiiirrss1H
* :X@H3s....... .,:;iii;iiiiirsrh
* r#h:;,...,,.. .,,:;;;;;:::,... .:;;;;;;iiiirrss1
* ,M8 ..,....,.....,,::::::,,... . .,;;;iiiiiirss11h
* 8B;.,,,,,,,.,..... . .. .:;;;;iirrsss111h
* i@5,:::,,,,,,,,.... . . .:::;;;;;irrrss111111
* 9Bi,:,,,,...... ..r91;;;;;iirrsss1ss1111
*/
#include
using namespace std;
typedef long long LL;
struct qwe
{
LL fo,to;
} q[100005],w[100005],z[100005],tmp;
LL head[100005],head1[100005];
LL cnt1,cnt2;
void add(LL a,LL b)
{
q[cnt1].to=b;
q[cnt1].fo=head[a];
head[a]=cnt1++;
}
void add1(LL a,LL b)
{
w[cnt2].to=b;
w[cnt2].fo=head1[a];
head1[a]=cnt2++;
}
LL vis1[100005],vis2[100005];
int main()
{
LL i,j,d,e,p,t,m,n,a,b,ans;
while(~scanf("%lld",&t))
{
while(t--)
{
scanf("%lld%lld",&n,&m);
cnt1=cnt2=0;
memset(head1,-1,sizeof(head1));
memset(head,-1,sizeof(head));
memset(vis2,0,sizeof(vis2));
memset(vis1,0,sizeof(vis1));
for(i=0; iqu;
map,LL>mp;
vis1[1]=vis2[1]=1;
for(i=head[1]; i!=-1; i=q[i].fo)
{
qu.push(q[i].to);
mp[make_pair(1,q[i].to)]=1;
vis1[q[i].to]=1;
}
while(!qu.empty())
{
a=qu.front();
qu.pop();
for(i=head[a];i!=-1;i=q[i].fo)
{
if(!vis1[q[i].to])
{
qu.push(q[i].to);
mp[make_pair(a,q[i].to)]=1;
vis1[q[i].to]=1;
}
}
}
for(i=head1[1]; i!=-1; i=w[i].fo)
{
qu.push(w[i].to);
mp[make_pair(w[i].to,1)]=1;
vis2[w[i].to]=1;
}
while(!qu.empty())
{
a=qu.front();
qu.pop();
for(i=head1[a];i!=-1;i=w[i].fo)
{
if(!vis2[w[i].to])
{
qu.push(w[i].to);
mp[make_pair(w[i].to,a)]=1;
vis2[w[i].to]=1;
}
}
}
ans=0;
for(i=0;(i2*n);i++)
{
if(mp[make_pair(z[i].fo,z[i].to)]!=1)
{
printf("%lld %lld\n",z[i].fo,z[i].to);
ans++;
}
}
}
}
return 0;
}