#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int col[111111],n,m,q,x,y,v[111111],d[111111],c[111111];
vector<int> g[111111];
bool used[111111][11];
void dfs(int i,int dep,int co)
{
	if (!col[i]) col[i]=co;
	if (!dep || used[i][dep]) return;
	used[i][dep]=1;
	dfs(i,dep-1,co);
	for (int j=0;j<g[i].size();j++)
	{
		int to=g[i][j];
		dfs(to,dep-1,co);
	}
}
int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		g[x].push_back(y);
		g[y].push_back(x);  
	}
	scanf("%d",&q);
	for (int i=1;i<=q;i++)
	{
		scanf("%d%d%d",&v[i],&d[i],&c[i]);
	}
	for (int i=q;i>=1;i--)
	{
		dfs(v[i],d[i],c[i]);
	}
	for (int i=1;i<=n;i++)
	{
		printf("%d\n",col[i]);
	}
	return 0;
}