#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void dfs ( int n, vector < int > sasiad[],bool odwiedzone[]){
odwiedzone[n] = true;
for(int i=0;i<sasiad[n].size();i++){
if(!odwiedzone[sasiad[n][i]]){
cout<<" "<<sasiad[n][i];
dfs(sasiad[n][i],sasiad,odwiedzone);
}
}
}
int main()
{
int n;
cin>>n;
for(int e = 0;e<n;e++){
int osob,wiadomosci,plotkarz,a,b;
cin>>osob>>wiadomosci>>plotkarz;
vector < int > sasiad[osob+1];
bool start = false;
bool *odwiedzone = new bool[osob+1];
for(int i=0;i<wiadomosci;i++){
cin>>a>>b;
if(a == plotkarz) start = true;
if(start) sasiad[a].push_back(b);
}
cout<<plotkarz;
dfs(plotkarz,sasiad,odwiedzone);
cout<<endl;
delete []odwiedzone;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgZGZzICggaW50IG4sIHZlY3RvciA8IGludCA+IHNhc2lhZFtdLGJvb2wgb2R3aWVkem9uZVtdKXsKICAgIG9kd2llZHpvbmVbbl0gPSB0cnVlOwoKICAgIGZvcihpbnQgaT0wO2k8c2FzaWFkW25dLnNpemUoKTtpKyspewoKICAgICAgICBpZighb2R3aWVkem9uZVtzYXNpYWRbbl1baV1dKXsKICAgICAgICAgICAgY291dDw8IiAiPDxzYXNpYWRbbl1baV07CiAgICAgICAgICAgIGRmcyhzYXNpYWRbbl1baV0sc2FzaWFkLG9kd2llZHpvbmUpOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbjsKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgZSA9IDA7ZTxuO2UrKyl7CiAgICAgICAgaW50IG9zb2Isd2lhZG9tb3NjaSxwbG90a2FyeixhLGI7CiAgICAgICAgY2luPj5vc29iPj53aWFkb21vc2NpPj5wbG90a2FyejsKCiAgICAgICAgdmVjdG9yIDwgaW50ID4gc2FzaWFkW29zb2IrMV07CgogICAgICAgIGJvb2wgc3RhcnQgPSBmYWxzZTsKCiAgICAgICAgYm9vbCAqb2R3aWVkem9uZSA9IG5ldyBib29sW29zb2IrMV07CgogICAgICAgIGZvcihpbnQgaT0wO2k8d2lhZG9tb3NjaTtpKyspewogICAgICAgICAgICBjaW4+PmE+PmI7CiAgICAgICAgICAgIGlmKGEgPT0gcGxvdGthcnopIHN0YXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgaWYoc3RhcnQpIHNhc2lhZFthXS5wdXNoX2JhY2soYik7CiAgICAgICAgfQoKICAgICAgICBjb3V0PDxwbG90a2FyejsKICAgICAgICBkZnMocGxvdGthcnosc2FzaWFkLG9kd2llZHpvbmUpOwogICAgICAgIGNvdXQ8PGVuZGw7CgogICAgICAgIGRlbGV0ZSBbXW9kd2llZHpvbmU7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=