#include<bits/stdc++.h>
using namespace std;
int main(){
int n,e;
cin>>n>>e;
vector<int>g[n+1];
for(int i=1;i<=e;i++){
int x,y;
cin>>x>>y;
g[x].push_back(y);
g[y].push_back(x);
}
int s;
cin>>s;
queue<int>q;
q.push(s);
vector<int>v(n+1,0),path(n+1,0),dis(n+1,0);
v[s]=1;
while(!q.empty()){
int front=q.front();
q.pop();
for(auto &it:g[front]){
if(v[it]==0){
v[it]=1;
q.push(it);
dis[it]=dis[front]+1;
path[it]++;
}
else if(dis[it]==dis[front]+1)path[it]++;
else if(dis[it]<dis[front]+1)path[it]=1;
}
}
for(int i=1;i<=n;i++){
cout<<i<<" has "<<path[i]<<" shortest path\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CglpbnQgbixlOwoJY2luPj5uPj5lOwoJdmVjdG9yPGludD5nW24rMV07Cglmb3IoaW50IGk9MTtpPD1lO2krKyl7CgkJaW50IHgseTsKCQljaW4+Png+Pnk7CgkJZ1t4XS5wdXNoX2JhY2soeSk7CgkJZ1t5XS5wdXNoX2JhY2soeCk7Cgl9CglpbnQgczsKCWNpbj4+czsKCXF1ZXVlPGludD5xOwoJcS5wdXNoKHMpOwoJdmVjdG9yPGludD52KG4rMSwwKSxwYXRoKG4rMSwwKSxkaXMobisxLDApOwoJdltzXT0xOwoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJaW50IGZyb250PXEuZnJvbnQoKTsKCQlxLnBvcCgpOwoJCWZvcihhdXRvICZpdDpnW2Zyb250XSl7CgkJCWlmKHZbaXRdPT0wKXsKCQkJCXZbaXRdPTE7CgkJCQlxLnB1c2goaXQpOwoJCQkJZGlzW2l0XT1kaXNbZnJvbnRdKzE7CgkJCQlwYXRoW2l0XSsrOwoJCQl9CgkJCWVsc2UgaWYoZGlzW2l0XT09ZGlzW2Zyb250XSsxKXBhdGhbaXRdKys7CgkJCWVsc2UgaWYoZGlzW2l0XTxkaXNbZnJvbnRdKzEpcGF0aFtpdF09MTsKCQl9Cgl9Cglmb3IoaW50IGk9MTtpPD1uO2krKyl7CgkJY291dDw8aTw8IiBoYXMgIjw8cGF0aFtpXTw8IiBzaG9ydGVzdCBwYXRoXG4iOwoJfQoJcmV0dXJuIDA7Cn0=