#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int e;
cin>>e;
vector<int> g[n+1];
for(int i=1; i<=e; i++){
int u,v;
cin>>u;
cin>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int source;
cin>>source;
// solution;
queue<int> q;
q.push(source);
vector<int> record (n+1,-1);
record[source]=0;
while(!q.empty()){
int t = q.front();
q.pop();
for(auto x: g[t]){
if(record[x]<0){
q.push(x);
record[x] = record[t]+1;
}
}
}
for(int i=1; i<=n; i++){
cout<< record[i]<< " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4oKSB7CgkKCWludCBuOwoJY2luPj5uOwoJaW50IGU7CgljaW4+PmU7CgoJdmVjdG9yPGludD4gZ1tuKzFdOwoKCWZvcihpbnQgaT0xOyBpPD1lOyBpKyspewoJCWludCB1LHY7CgkJY2luPj51OwoJCWNpbj4+djsKCQlnW3VdLnB1c2hfYmFjayh2KTsKCQlnW3ZdLnB1c2hfYmFjayh1KTsKCX0KCglpbnQgc291cmNlOwoJY2luPj5zb3VyY2U7CgoJLy8gc29sdXRpb247CgoJcXVldWU8aW50PiBxOwoKCXEucHVzaChzb3VyY2UpOwoKCXZlY3RvcjxpbnQ+IHJlY29yZCAobisxLC0xKTsKCXJlY29yZFtzb3VyY2VdPTA7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCQoJCWludCB0ID0gcS5mcm9udCgpOwoJCQoJCXEucG9wKCk7CgkJCgkJZm9yKGF1dG8geDogZ1t0XSl7CgkJCQoJCQlpZihyZWNvcmRbeF08MCl7CgkJCQlxLnB1c2goeCk7CgkJCQlyZWNvcmRbeF0gPSByZWNvcmRbdF0rMTsKCQkJfQoJCX0KCgl9CgoJZm9yKGludCBpPTE7IGk8PW47IGkrKyl7CgkJY291dDw8IHJlY29yZFtpXTw8ICIgIjsKCX0KCglyZXR1cm4gMDsKfQ==