#include <bits/stdc++.h>
using namespace std;
#define MAXN 100005
int parent[MAXN];
int counts[MAXN];
int friends[MAXN];
int blocked[MAXN];
int n, m, k;

int findSet(int i) {
	return (parent[i] == i)? i:parent[i] = findSet(parent[i]);
}

void unionSet(int i, int j) {
	int pi = findSet(i);
	int pj = findSet(j);
	if(pi != pj) {
		parent[pi] = pj;
		counts[pj] += counts[pi];
		counts[pi] = 0;
	}
}

bool isSameSet(int i, int j) {
	return findSet(i) == findSet(j);
}

int main() 
{
	cin >> n >> m >> k;
	for(int i = 0; i <= n; ++i) {
		parent[i] = i;
		counts[i] = 1;
		friends[i] = 1;
		blocked[i] = 0;
	}
	int u, v;
	for(int i = 0; i < m; ++i) {
		cin >> u >> v;
		unionSet(u,v);
		friends[u]++;
		friends[v]++;
	}
	for(int i = 0; i < k; ++i) {
		cin >> u >> v;
		if(isSameSet(u,v)) {
			blocked[u]++;
			blocked[v]++;
		}
	}
	for(int i = 1; i <= n; ++i) {
		int p = findSet(i);
		cout << counts[p] - friends[i] - blocked[i] << " ";
	}
	cout << endl;
	return 0;
}
