#include <bits/stdc++.h>
#define pb push_back
#define int long long
using namespace std;
const int N=1e5+5;
vector<int> g[N];
bool vis[N];
int q[N];
int dep[N];
signed main()
{
ifstream cin("bfs.in");ofstream cout("bfs.out");
int n,m,root;
cin>>n>>m>>root;
for(int _=1;_<=m;++_)
{
int u,v;cin>>u>>v;
g[u].pb(v);
}
queue<int> q;
q.push(root);
for(int i=1;i<=n;++i) dep[i]=-1;
dep[root]=0;
while(!q.empty())
{
int u=q.front();
q.pop();
vis[u]=1;
for(auto v:g[u])
{
if(vis[v]) continue;
dep[v]=dep[u]+1;
q.push(v);
}
}
for(int i=1;i<=n;++i) cout<<dep[i]<<" ";
}