X=xrange;I=lambda:map(int,raw_input().split()) N,M,Q=I() O=10**6;R=[0]*N;A=[0]*N;B=set() L=[[] for i in X(N)] E=[I()for i in X(M+Q)] for i in X(Q):f,t=E[M+i];B|={f+t*O};B|={f*O+t} for i in X(M): f,t=E[i] if f+t*O not in B:L[f-1]+=[t-1];L[t-1]+=[f-1] def dfs(h,R,A): q=[[O,h]] while q: b,h=q.pop() if R[h]^1: R[h]=1;A[h]=T for n in L[h]: if b^n:q+=[[h,n]] T=-1;dfs(0,R,A) for T in X(Q,0,-1): f,t=E[M+T-1];f-=1;t-=1 L[f]+=[t];L[t]+=[f] if R[f]:dfs(t,R,A) elif R[t]:dfs(f,R,A) for i in X(1,N):print A[i]