#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define maxn 100005
using namespace std;
vector <int>vec[maxn];
int c[maxn];
int q[maxn];
int n,m,s,x,y,l;
void BFS(int nod)
{
memset(c,-1,sizeof(c));
c[nod] = 0;
l = 1;
q[l] = nod;
for(int i = 1;i<=l;i++)
for(int k = 0;k<vec[q[i]].size();k++)
if(c[vec[q[i]][k]]==-1)
{
q[++l] = vec[q[i]][k];
c[vec[q[i]][k]] = c[q[i]] + 1;
}
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin >> n >> m >> s;
for(int i = 1;i<=m;i++)
{
fin >> x >> y;
vec[x].push_back(y);
}
BFS(s);
for(int i = 1;i<=n;i++)
fout << c[i] << " ";
fin.close();fout.close();return 0;
}