#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int q[101000],H=0,T=0;
int col[101000],d[101000];
int h[101000],nxt[201000],to[201000],K=0;
int V[101000],D[101000],C[101000];
void ins(int u,int v){nxt[++K]=h[u];h[u]=K;to[K]=v;}
int main()
{
	int n,m;scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		int a,b;scanf("%d%d",&a,&b);
		ins(a,b);ins(b,a);
	}
	int Q;scanf("%d",&Q);
	for(int i=1;i<=Q;i++)scanf("%d%d%d",&V[i],&D[i],&C[i]);
	memset(d,-1,sizeof(d));
	for(int i=Q;i>=1;i--)
	{
		if(D[i]>d[V[i]])
		{
			H=T=0;d[V[i]]=D[i];q[T++]=V[i];
			while(H<T)
			{
				int x=q[H++];if(!col[x])col[x]=C[i];
				for(int j=h[x];j;j=nxt[j])
				{
					if(d[to[j]]<d[x]-1)
					{
						d[to[j]]=d[x]-1;
						q[T++]=to[j];
					}
				}
			}
		}
	}
	for(int i=1;i<=n;i++)printf("%d\n",col[i]);return 0;
 } 