#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<int> q;
	q.push(s);
	vector<int> level(n+1,-1);
	level[s]=0;
	
	vector<int> visited(n+1);
	visited[s]=1;
	vector<int> ways(n+1,0);
	ways[s]=1;
	
	



	while(!q.empty()){
       int a = q.front();
	   
	   
	   q.pop();


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

	for(int i=1;i<=n;i++){
		cout<< ways[i] << " ";
		

	}
}