#include<bits/stdc++.h>
using namespace std;
vector<int> ke[1001];
int m , n;
int parent[1001];
bool visited[1001];
int kt = 0;
void DFS(int u) {
visited[u] = true;
for (int x : ke[u]) {
if (!visited[x]) {
cout << x << " ";
parent[x] = u;
DFS(x);
kt = x; // C?p nh?t bi?n kt m?i khi tìm th?y m?t d?nh chua du?c tham
}
}
}
int main(){
cin >> m >> n ;
int s;
cin >> s;
for(int i = 1 ; i <= n ; i++){
int x,y;
cin >> x >> y;
ke[x].push_back(y);
}
sort(ke[s].begin() , ke[s].end());
cout << s << " ";
DFS(s);
// for(int x : ke[s]){
// cout << x << " ";
// }
// vector<int> path ;
// while(kt != s){
// path.push_back(kt);
// kt = parent[kt];
// }
// path.push_back(s);
// reverse(path.begin() , path.end());
// for(int x : path){
// cout << x << " ";
// }
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD4ga2VbMTAwMV07CmludCBtICwgbjsgCmludCBwYXJlbnRbMTAwMV07CmJvb2wgdmlzaXRlZFsxMDAxXTsKaW50IGt0ID0gMDsKdm9pZCBERlMoaW50IHUpIHsKICAgIHZpc2l0ZWRbdV0gPSB0cnVlOwogICAgZm9yIChpbnQgeCA6IGtlW3VdKSB7CiAgICAgICAgaWYgKCF2aXNpdGVkW3hdKSB7CiAgICAgICAgCWNvdXQgPDwgeCA8PCAiICI7CiAgICAgICAgICAgIHBhcmVudFt4XSA9IHU7CiAgICAgICAgICAgIERGUyh4KTsKICAgICAgICAgICAga3QgPSB4OyAvLyBDP3Agbmg/dCBiaT9uIGt0IG0/aSBraGkgdMOsbSB0aD95IG0/dCBkP25oIGNodWEgZHU/YyB0aGFtCiAgICAgICAgfQogICAgfQp9CgoKaW50IG1haW4oKXsKCWNpbiA+PiBtID4+IG4gOwoJaW50IHM7IAoJY2luID4+IHM7IAoJZm9yKGludCBpID0gMSA7IGkgPD0gbiA7IGkrKyl7CgkJaW50IHgseTsgCgkJY2luID4+IHggPj4geTsKCQlrZVt4XS5wdXNoX2JhY2soeSk7Cgl9Cglzb3J0KGtlW3NdLmJlZ2luKCkgLCBrZVtzXS5lbmQoKSk7Cgljb3V0IDw8IHMgPDwgIiAiOwoJREZTKHMpOwovLwlmb3IoaW50IHggOiBrZVtzXSl7Ci8vCQljb3V0IDw8IHggPDwgIiAiOwovLwl9Ci8vCXZlY3RvcjxpbnQ+IHBhdGggOyAKLy8Jd2hpbGUoa3QgIT0gcyl7Ci8vCQlwYXRoLnB1c2hfYmFjayhrdCk7Ci8vCQlrdCA9IHBhcmVudFtrdF07Ci8vCX0KLy8JcGF0aC5wdXNoX2JhY2socyk7Ci8vCXJldmVyc2UocGF0aC5iZWdpbigpICwgcGF0aC5lbmQoKSk7Ci8vCWZvcihpbnQgeCA6IHBhdGgpewovLwkJY291dCA8PCB4IDw8ICIgIjsKLy8JfQp9