#include<bits/stdc++.h>
using namespace std;
int father[101];
int N,M;
vector<int> Find(int x){
vector<int> ans;
for(int i=0;i<=M;i++){
if(father[i]==x){
ans.push_back(i);
}
}
return ans;
}
int main(){
int T;
cin>>T;
for(int I=1;I<=T;I++){
cin>>N>>M;
fill(father,father+101,-1);
int a[N][2];
for(int j=0;j<N;j++){
int son,fa;
cin>>son>>fa;
father[son]=fa;
}
cout<<"Q"<<I<<":"<<endl;
if(N==0){
cout<<endl;
continue;
}else{
cout<<"1"<<endl;
}
vector<int> next;
next.push_back(1);
int pos=1;
while(true){
vector<int> temp;
for(int i=0;i<next.size();i++){
vector<int> tmp = Find(next[i]);
for(int i=0;i<tmp.size();i++){
temp.push_back(tmp[i]);
}
}
if(temp.size()==0){
break;
}
for(int i=0;i<temp.size()-1;i++){
cout<<temp[i]<<" ";
}
cout<<temp[temp.size()-1]<<endl;
next.clear();
for(int i=0;i<temp.size();i++){
next.push_back(temp[i]);
}
}
}
}
并查集的小应用