#include<bits/stdc++.h>
using namespace std;
vector<int>adj_list[100];
int visited[100];
int dis[100];
int par[100];
int zaoa_zay=0;
int BFS(int start,int dest)
{
visited[start]=1;
dis[start]=0;
par[start]=-1;
queue<int>q;
q.push(start);
while(!q.empty())
{
int currnode=q.front();
cout<<"*"<<currnode<<endl;
q.pop();
for(int i=0;i<adj_list[currnode].size();i++)
{
int child=adj_list[currnode][i];
if(visited[child]==0)
{
q.push(child);
visited[child]=1;
dis[child]=dis[currnode]+1;
par[child]=currnode;
if(child==dest)
{
return dis[child];
}
}
}
}
return -1;
}
int main()
{
int node,edge;
cin>>node>>edge;
for(int i=1;i<=edge;i++)
{
int u,v;
cin>>u>>v;
adj_list[u].push_back(v);
}
int start,dest;
cin>>start>>dest;
int min_dist=BFS(start,dest);
if(min_dist=-1)
{
cout<<"connected,Distence:"<<min_dist<<endl;
stack<int>st;
int currnode= dest;
while(currnode!=-1)
{
st.push(currnode);
currnode=par[currnode];
}
while(!st.empty())
{
cout<<st.top()<<endl;
st.pop();
}
}
else
{
cout<<"disconnected"<<endl;
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5hZGpfbGlzdFsxMDBdOwppbnQgdmlzaXRlZFsxMDBdOwppbnQgZGlzWzEwMF07CmludCBwYXJbMTAwXTsKaW50IHphb2FfemF5PTA7CmludCBCRlMoaW50IHN0YXJ0LGludCBkZXN0KQp7CnZpc2l0ZWRbc3RhcnRdPTE7CmRpc1tzdGFydF09MDsKcGFyW3N0YXJ0XT0tMTsKcXVldWU8aW50PnE7CnEucHVzaChzdGFydCk7CndoaWxlKCFxLmVtcHR5KCkpCnsKaW50IGN1cnJub2RlPXEuZnJvbnQoKTsKY291dDw8IioiPDxjdXJybm9kZTw8ZW5kbDsKcS5wb3AoKTsKZm9yKGludCBpPTA7aTxhZGpfbGlzdFtjdXJybm9kZV0uc2l6ZSgpO2krKykKewppbnQgY2hpbGQ9YWRqX2xpc3RbY3Vycm5vZGVdW2ldOwppZih2aXNpdGVkW2NoaWxkXT09MCkKewpxLnB1c2goY2hpbGQpOwp2aXNpdGVkW2NoaWxkXT0xOwpkaXNbY2hpbGRdPWRpc1tjdXJybm9kZV0rMTsKcGFyW2NoaWxkXT1jdXJybm9kZTsKaWYoY2hpbGQ9PWRlc3QpCnsKcmV0dXJuIGRpc1tjaGlsZF07Cn0KfQp9Cn0KcmV0dXJuIC0xOwp9CmludCBtYWluKCkKewppbnQgbm9kZSxlZGdlOwpjaW4+Pm5vZGU+PmVkZ2U7CmZvcihpbnQgaT0xO2k8PWVkZ2U7aSsrKQp7CmludCB1LHY7CmNpbj4+dT4+djsKYWRqX2xpc3RbdV0ucHVzaF9iYWNrKHYpOwp9CmludCBzdGFydCxkZXN0OwpjaW4+PnN0YXJ0Pj5kZXN0OwppbnQgbWluX2Rpc3Q9QkZTKHN0YXJ0LGRlc3QpOwppZihtaW5fZGlzdD0tMSkKewpjb3V0PDwiY29ubmVjdGVkLERpc3RlbmNlOiI8PG1pbl9kaXN0PDxlbmRsOwpzdGFjazxpbnQ+c3Q7CmludCBjdXJybm9kZT0gZGVzdDsKd2hpbGUoY3Vycm5vZGUhPS0xKQp7CnN0LnB1c2goY3Vycm5vZGUpOwpjdXJybm9kZT1wYXJbY3Vycm5vZGVdOwp9CndoaWxlKCFzdC5lbXB0eSgpKQp7CmNvdXQ8PHN0LnRvcCgpPDxlbmRsOwpzdC5wb3AoKTsKfQp9CmVsc2UKewpjb3V0PDwiZGlzY29ubmVjdGVkIjw8ZW5kbDsKfQp9