#include<bits/stdc++.h>
using namespace std;
long long n,s,t,m,v,u,d,k;
long long b[100068],trace[1000015];
long long check[100015];
vector<long long> a[100168];
void DFS(long long u)
{
check[u]=1;
for(int v:a[u])
{if(check[v]==0)
{
trace[v]= u;
DFS(v);
}}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
freopen("DFS.inp","r",stdin);
freopen("DFS.out","w",stdout);
cin>>n>>m>>s>>t;
for(int i=1;i<=m;i++)
{
cin>>u>>v;
a[u].push_back(v);
}
for(int i=1;i<=n;i++)
sort(a[i].begin(),a[i].end());
fill(check,check+n,0);
DFS(s);
u=t;
k=1;
b[k]=t;
while(u!=s)
{
u= trace[u];
k++;
b[k]=u;
}
for(int i=k;i>=1;i--)
cout<<b[i]<<" ";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIG4scyx0LG0sdix1LGQsazsKbG9uZyBsb25nIGJbMTAwMDY4XSx0cmFjZVsxMDAwMDE1XTsKbG9uZyBsb25nIGNoZWNrWzEwMDAxNV07CnZlY3Rvcjxsb25nIGxvbmc+IGFbMTAwMTY4XTsKdm9pZCBERlMobG9uZyBsb25nIHUpCnsKY2hlY2tbdV09MTsKZm9yKGludCB2OmFbdV0pCntpZihjaGVja1t2XT09MCkKewp0cmFjZVt2XT0gdTsKREZTKHYpOwp9fQp9CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKICAgIGZyZW9wZW4oIkRGUy5pbnAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJERlMub3V0IiwidyIsc3Rkb3V0KTsKICAgIGNpbj4+bj4+bT4+cz4+dDsKICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKQogICAgewogICAgICAgIGNpbj4+dT4+djsKICAgICAgICAgICAgYVt1XS5wdXNoX2JhY2sodik7CiAgICB9CgogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgICAgc29ydChhW2ldLmJlZ2luKCksYVtpXS5lbmQoKSk7CiAgICBmaWxsKGNoZWNrLGNoZWNrK24sMCk7CiAgICBERlMocyk7CiAgICB1PXQ7CiAgICBrPTE7CiAgICBiW2tdPXQ7CiAgICB3aGlsZSh1IT1zKQogICAgewoKICAgICAgICB1PSB0cmFjZVt1XTsKICAgICAgICBrKys7CiAgICAgICAgYltrXT11OwogICAgfQogICAgZm9yKGludCBpPWs7aT49MTtpLS0pCgogICAgICAgIGNvdXQ8PGJbaV08PCIgIjsKfQo=