import java.util.*;
import java.io.*;
class Main {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
int e = sc.nextInt();
List<List<Integer>> adj=new ArrayList<>();
for(int i=0;i<=n;i++)
adj.add(new ArrayList<>());
for (int k = 0; k < e; k++) {
int u = sc.nextInt();
int v = sc.nextInt();
adj.get(u).add(v);
adj.get(v).add(u);
}
int visited[]=new int[n+1];
int level[]=new int[n+1];
int ways[]=new int[n+1];
Queue<Integer> q=new LinkedList<>();
q.add(1);
visited[1]=1;
level[1]=0;
ways[1]=1;
while(!q.isEmpty())
{
int temp=q.poll();
for(int neighbour:adj.get(temp))
{
if(visited[neighbour]==0)
{
q.add(neighbour);
visited[neighbour]=1;
level[neighbour]=level[temp]+1;
ways[neighbour]=ways[temp];
}
else
{
if(level[temp]+1==level[neighbour])
ways[neighbour]+=ways[temp];
}
}
}
for(int i=1;i<=n;i++)
{
System.
out.
println(i
+" "+ways
[i
]);
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IHQgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgCiAgICAgICAgd2hpbGUgKHQtLSA+IDApIHsKICAgICAgICAgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGludCBlID0gc2MubmV4dEludCgpOwogICAgICAgICAgICAKICAgICAgICAgICAgTGlzdDxMaXN0PEludGVnZXI+PiBhZGo9bmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8PW47aSsrKQogICAgICAgICAgICBhZGouYWRkKG5ldyBBcnJheUxpc3Q8PigpKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGU7IGsrKykgewogICAgICAgICAgICAgICAgaW50IHUgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICBpbnQgdiA9IHNjLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgIGFkai5nZXQodSkuYWRkKHYpOwogICAgICAgICAgICAgICAgYWRqLmdldCh2KS5hZGQodSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGludCB2aXNpdGVkW109bmV3IGludFtuKzFdOwogICAgICAgICAgICBpbnQgbGV2ZWxbXT1uZXcgaW50W24rMV07CiAgICAgICAgICAgIGludCB3YXlzW109bmV3IGludFtuKzFdOwogICAgICAgICAgICBRdWV1ZTxJbnRlZ2VyPiBxPW5ldyBMaW5rZWRMaXN0PD4oKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHEuYWRkKDEpOwogICAgICAgICAgICB2aXNpdGVkWzFdPTE7CiAgICAgICAgICAgIGxldmVsWzFdPTA7CiAgICAgICAgICAgIHdheXNbMV09MTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHdoaWxlKCFxLmlzRW1wdHkoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAJaW50IHRlbXA9cS5wb2xsKCk7CiAgICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50KHRlbXArIiAiKTsKICAgICAgICAgICAgCWZvcihpbnQgbmVpZ2hib3VyOmFkai5nZXQodGVtcCkpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAkJaWYodmlzaXRlZFtuZWlnaGJvdXJdPT0wKQogICAgICAgICAgICAJCXsKICAgICAgICAgICAgCQkJcS5hZGQobmVpZ2hib3VyKTsKICAgICAgICAgICAgCQkJdmlzaXRlZFtuZWlnaGJvdXJdPTE7CiAgICAgICAgICAgIAkJCWxldmVsW25laWdoYm91cl09bGV2ZWxbdGVtcF0rMTsKICAgICAgICAgICAgCQkJd2F5c1tuZWlnaGJvdXJdPXdheXNbdGVtcF07CiAgICAgICAgICAgIAkJfQogICAgICAgICAgICAJCWVsc2UKICAgICAgICAgICAgCQl7CiAgICAgICAgICAgIAkJCWlmKGxldmVsW3RlbXBdKzE9PWxldmVsW25laWdoYm91cl0pCiAgICAgICAgICAgIAkJCXdheXNbbmVpZ2hib3VyXSs9d2F5c1t0ZW1wXTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAl9CiAgICAgICAgICAgIAkKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaSsiICIrd2F5c1tpXSk7CiAgICAgICAgICAgIAkKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICB9CiAgICB9Cn0=