#include <iostream>
#include<bits/stdc++.h>

using namespace std;
int main() {
	int n,e;
	cin>>n>>e;
	vector<int> g[n+1];

	for(int i=1;i<=e;i++){
		int u;
		int v;
		cin>>u>>v;

		g[u].push_back(v);
		g[v].push_back(u);
	}

	int s;
	cin>>s;
	queue<pair<int,int>> q;
	q.push({s,0});
	vector<int> level(n+1,-1);
	vector<int> visited(n+1);
	visited[s]=1;
	



	while(!q.empty()){
       int a = q.front().first;
	   int lvl = q.front().second;
	   level[a] = lvl;
	   q.pop();


	   for(auto it : g[a]){
           if(!visited[it]){
			q.push({it,lvl+1});
			visited[it]=1;

		   }
	   }
	}

	for(int i=1;i<=n;i++){
		if(level[i]==-1){
			cout<<"NO"<<" ";
		}
		else{
			cout<<"YES"<<" ";
			
		}

	}
}