#include<bits/stdc++.h>
using namespace std;
int n,m,s,tu,kk;
vector<int>a[2000];
int vis[2000];
stack<int>vise;
int dfs(int x){
if(x==tu&&kk==0){
int k[60000],t=0;
while(vise.size()!=0){
k[t]=vise.top();
t++;
vise.pop();
}
for(int i=t-1;i>=0;i--){
cout<<k[i]<<" ";
}
cout<<endl;
kk=1;
return 0;
}
if(kk==1){
return 0;
}
int p[60000];
for(int i=0;i<a[x].size();i++){
p[i]=a[x][i];
}
int t=a[x].size();
if(t==0){
return 0;
}
sort(p,p+t);
for(int i=0;i<t;i++){
if(vis[p[i]]==0){
vis[p[i]]=1;
vise.push(p[i]);
dfs(p[i]);
if(kk==1){
return 0;
}
vise.pop();
vis[p[i]]=0;
}
}
return 0;
}
signed main(){
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
int t;
cin>>t;
while(t--){
cin>>n>>m>>s>>tu;
kk=0;
while(vise.size()!=0){
vise.pop();
}
for(int i=1;i<=n;i++){
vis[i]=0;
while(a[i].size()!=0){
a[i].pop_back();
}
}
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
vis[s]=1;
vise.push(s);
dfs(s);
}
return 0;
}