// BFS.cpp : Defines the entry point for the console application.
//
#include "iostream"
#include "fstream"
using namespace std;
struct nod{
char ver;
int distanta;
};
int math[10][10], n, m, s;
nod nods[10];
void bfs(int nod_s)
{
if (nods[nod_s].ver == 'w')
nods[nod_s].ver = 'G';
if (nods[nod_s].distanta == -1)
nods[nod_s].distanta = 0;
for (int i = 1; i <= n; i++)
{
if (math[nod_s][i] == 1 && nods[i].ver == 'w')
{
nods[i].ver = 'G';
nods[i].distanta = nods[nod_s].distanta + 1;
}
}
nods[nod_s].ver = 'B';
for (int i = 1; i <= n; i++)
{
if (math[nod_s][i] == 1 && nods[i].ver == 'G')
bfs(i);
}
}
int main()
{
int x, y;
ifstream bfs_in;
ofstream bfs_out;
bfs_in.open("bfs.in");
bfs_out.open("bfs.out");
/*citire si atribuire*/
bfs_in >> n >> m >> s;
for (int i = 1; i <= m; i++)
{
bfs_in >> x >> y;
math[x][y] = 1;
}
for (int i = 1; i <= n; i++)
{
nods[i].ver = 'w';
nods[i].distanta = -1;
}
/*bfs*/
bfs(s);
/*scriere*/
for (int i = 1; i <= n; i++)
{
bfs_out << nods[i].distanta <<' ';
}
return 0;
}