import numpy as np
from scipy.sparse.csgraph import shortest_path
N, M, K = tuple(map(int, input().split()))
friends = [list(map(int, input().split())) for _ in range(M)]
blocks = [list(map(int, input().split())) for _ in range(K)]

friend_matrix = np.zeros((N, N))

for friend in friends:
	friend_matrix[friend[0]-1, friend[1]-1] = 1
	friend_matrix[friend[1]-1, friend[0]-1] = 1

# matrix for direct friendship between 2
# print('friend_matrix')
# print(friend_matrix)

# matrix for friendship distance
friend_distance = shortest_path(friend_matrix)
# print('friend_distance')
# print(friend_distance)

def is_friend_candidate(a, b):
	if a == b:
		return False
	for block in blocks:
		if block == [a, b] or block == [b, a]:
			return False
	for friend in friends:
		if friend == [a, b] or friend == [b, a]:
			return False
	if friend_distance[a-1, b-1] == np.inf:
		return False
	return True

candidate_matrix = np.zeros((N, N))
for i in range(N):
	for other in range(N):
		if candidate_matrix[i, other] == 1:
			continue
		if is_friend_candidate(i+1, other+1):
			candidate_matrix[i, other] = 1
			candidate_matrix[other, i] = 1

# matrix for friendship candidate
# print('candidate_matrix')
# print(candidate_matrix)

# atcoder numpy is outdated
# print(np.__version__)
# candidate_counts = np.count_nonzero(candidate_matrix == 1, axis=0)
candidate_counts = []
for row in candidate_matrix:
	candidate_counts.append(np.count_nonzero(row == 1))

# print('candidate_counts')
# print(candidate_counts)
print(' '.join(map(str, candidate_counts)))
	
