#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
struct Node{int x,y;}e[N];
bool cmp(Node a,Node b)
{
if(a.x!=b.x) return a.x<b.x;//如果不相等,返回a.x<b.x
return a.y<b.y;//如果相等,则它们为同一个结点的边,用到达结点进行排序
}
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
//n是结点的个数,m是边的个数
for(int i=1;i<=m;i++)
scanf("%d%d",&e[i].x,&e[i].y);
sort(e+1,e+m+1,cmp);
//用sort进行升序排序
for(int i=1,j=1;i<=n;i++) //按照结点顺序输出,i为初始结点,j为到达结点
{
while(j<=m && e[j].x==i) printf("%d",e[j++].y);
puts("");
}
}
return 0;
}