#include <iostream>
#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 u;
int v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int s;
cin>>s;
queue<pair<int,int>> q;
q.push({s,0});
vector<int> level(n+1,-1);
vector<int> visited(n+1);
visited[s]=1;
while(!q.empty()){
int a = q.front().first;
int lvl = q.front().second;
level[a] = lvl;
q.pop();
for(auto it : g[a]){
if(!visited[it]){
q.push({it,lvl+1});
visited[it]=1;
}
}
}
for(int i=1;i<=n;i++){
cout<<level[i]<<" ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CglpbnQgbixlOwoJY2luPj5uPj5lOwoJdmVjdG9yPGludD4gZ1tuKzFdOwoKCWZvcihpbnQgaT0xO2k8PWU7aSsrKXsKCQlpbnQgdTsKCQlpbnQgdjsKCQljaW4+PnU+PnY7CgoJCWdbdV0ucHVzaF9iYWNrKHYpOwoJCWdbdl0ucHVzaF9iYWNrKHUpOwoJfQoKCWludCBzOwoJY2luPj5zOwoJcXVldWU8cGFpcjxpbnQsaW50Pj4gcTsKCXEucHVzaCh7cywwfSk7Cgl2ZWN0b3I8aW50PiBsZXZlbChuKzEsLTEpOwoJdmVjdG9yPGludD4gdmlzaXRlZChuKzEpOwoJdmlzaXRlZFtzXT0xOwoJCgoKCgl3aGlsZSghcS5lbXB0eSgpKXsKICAgICAgIGludCBhID0gcS5mcm9udCgpLmZpcnN0OwoJICAgaW50IGx2bCA9IHEuZnJvbnQoKS5zZWNvbmQ7CgkgICBsZXZlbFthXSA9IGx2bDsKCSAgIHEucG9wKCk7CgoKCSAgIGZvcihhdXRvIGl0IDogZ1thXSl7CiAgICAgICAgICAgaWYoIXZpc2l0ZWRbaXRdKXsKCQkJcS5wdXNoKHtpdCxsdmwrMX0pOwoJCQl2aXNpdGVkW2l0XT0xOwoKCQkgICB9CgkgICB9Cgl9CgoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCWNvdXQ8PGxldmVsW2ldPDwiICI7CgoJfQp9