#include <bits/stdc++.h>
using namespace std;
vector <int>adj_list[100];
int cost[100];
int visited[100];
int parent[100];
vector <int> bfs;
void BFS(int s){
cost[s]=0;
visited[s]=1;
parent[s]=s;
queue<int>q;
q.push(s);
while(!q.empty()){
int u=q.front();
q.pop();
bfs.push_back(u);
for(int i=0;i<adj_list[u].size();i++){
int v = adj_list[u][i];
if(visited[v]!=1){
visited[v]=1;
cost[v]=cost[u]+1;
parent[v]=u;
q.push(v);
}
}
}
}
int main(){
int n,e;
cin>>n>>e;
for(int i=1;i<=e;i++){
int u,v;
cin>>u>>v;
adj_list[u].push_back(v);
adj_list[v].push_back(u); //unidrected hoile eta lage
}
int source,dest;
cin>>source>>dest;
BFS(source);
cout<<"Cost is: "<<cost[dest]<<"\n";
vector<int>path;
int now=dest;
path.push_back(now);
while(parent[now]!=now){
now=parent[now];
path.push_back(now);
}
reverse(path.begin(),path.end());
cout<<"PATH IS: ";
for(int x:path){
cout<<x<<" ";
}
cout<<"\n";
cout<<"BFS traversal IS: ";
for(int x:bfs){
cout<<x<<" ";
}
cout<<"\n";
return 0;
}
/*
7 8
1 2
1 4
2 4
2 3
3 5
3 6
4 7
5 6
1 5
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZlY3RvciA8aW50PmFkal9saXN0WzEwMF07CmludCBjb3N0WzEwMF07CmludCB2aXNpdGVkWzEwMF07CmludCBwYXJlbnRbMTAwXTsKdmVjdG9yIDxpbnQ+IGJmczsKdm9pZCBCRlMoaW50IHMpewogICAgY29zdFtzXT0wOwogICAgdmlzaXRlZFtzXT0xOwogICAgcGFyZW50W3NdPXM7CgogICAgcXVldWU8aW50PnE7CgogICAgcS5wdXNoKHMpOwogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgaW50IHU9cS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CiAgICAgICAgYmZzLnB1c2hfYmFjayh1KTsKCiAgICAgICAgZm9yKGludCBpPTA7aTxhZGpfbGlzdFt1XS5zaXplKCk7aSsrKXsKICAgICAgICAgICAgaW50IHYgPSBhZGpfbGlzdFt1XVtpXTsKCiAgICAgICAgICAgIGlmKHZpc2l0ZWRbdl0hPTEpewogICAgICAgICAgICAgICAgdmlzaXRlZFt2XT0xOwogICAgICAgICAgICAgICAgY29zdFt2XT1jb3N0W3VdKzE7CiAgICAgICAgICAgICAgICBwYXJlbnRbdl09dTsKCiAgICAgICAgICAgICAgICBxLnB1c2godik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGludCBuLGU7CiAgICBjaW4+Pm4+PmU7CiAgICBmb3IoaW50IGk9MTtpPD1lO2krKyl7CiAgICAgICAgaW50IHUsdjsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgYWRqX2xpc3RbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGFkal9saXN0W3ZdLnB1c2hfYmFjayh1KTsgLy91bmlkcmVjdGVkIGhvaWxlIGV0YSBsYWdlCiAgICB9CiAgICBpbnQgc291cmNlLGRlc3Q7CiAgICBjaW4+PnNvdXJjZT4+ZGVzdDsKICAgIEJGUyhzb3VyY2UpOwogICAgY291dDw8IkNvc3QgaXM6ICI8PGNvc3RbZGVzdF08PCJcbiI7CgogICAgdmVjdG9yPGludD5wYXRoOwoKICAgIGludCBub3c9ZGVzdDsKICAgIHBhdGgucHVzaF9iYWNrKG5vdyk7CgogICAgd2hpbGUocGFyZW50W25vd10hPW5vdyl7CiAgICAgICAgbm93PXBhcmVudFtub3ddOwogICAgICAgIHBhdGgucHVzaF9iYWNrKG5vdyk7CiAgICB9CiAgICByZXZlcnNlKHBhdGguYmVnaW4oKSxwYXRoLmVuZCgpKTsKICAgIGNvdXQ8PCJQQVRIIElTOiAiOwogICAgZm9yKGludCB4OnBhdGgpewogICAgICAgIGNvdXQ8PHg8PCIgIjsKICAgIH0KICAgIGNvdXQ8PCJcbiI7CgogICAgY291dDw8IkJGUyB0cmF2ZXJzYWwgSVM6ICI7CiAgICBmb3IoaW50IHg6YmZzKXsKICAgICAgICBjb3V0PDx4PDwiICI7CiAgICB9CiAgICBjb3V0PDwiXG4iOwogICAgcmV0dXJuIDA7Cn0KLyoKNyA4CgoxIDIKMSA0CjIgNAoyIDMKMyA1CjMgNgo0IDcKNSA2CgoxIDUKKi8K