#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;
typedef pair<int,int> PII;
const int N=501000,M=500100;
int T;
int head[N],elem[M],Next[M];
int index;
int n,m;
vector<PII> edges;
void add(int a,int b){
elem[index]=b;
Next[index]=head[a];
head[a]=index++;
}
int main(){
memset(head,-1,sizeof(head));
cin>>T;
while(T--){
scanf("%d%d",&n,&m);
while(m--){
int u,v;
scanf("%d%d",&u,&v);
//u->v v<-u
edges.push_back({v,u});
}
sort(edges.begin(),edges.end(),greater<PII>());
for(int i=0;i<edges.size();i++){
add(edges[i].second,edges[i].first);
}
for(int i=1;i<=n;i++){
for(int j=head[i];j!=-1;j=Next[j]){
printf("%d ",elem[j]);
}printf("\n");
head[i]=-1;
}
edges.clear();
index=0;
}
return 0;
}