#include<stdio.h>
int arr[100005]={}, n, m, g[200005][2]={};
void dfs(int a)
{
arr[a]=1;
for(int i=g[a][0];i<=g[a][0]+g[a][1]+1;i++)
{
if (arr[i] == 0)
{
dfs(i);
}
}
}
int main()
{
int i, a,b, r,cnt=0;
scanf("%d %d %d", &n, &m, &r);
for(i=1;i<=m;i++)
{
scanf("%d %d", &a, &b);
g[a][1]++;
g[b][1]++;
if (g[a][0]>b)
{
g[a][0]=b;
}
if (g[b][0]>a)
{
g[b][0]=a;
}
}
dfs(r);
for(i=1;i<=n;i++)
{
if (arr[i])
{
printf("%d\n", i);
}
else
{
cnt++;
}
}
for(i=1;i<=cnt;i++)
{
printf("0\n");
}
return 0;
}



