#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> G(100010);
vector<int> visit(100100, -1);
int cnt = 0;
int src(vector<vector<int>> G, int n, int p) {
  visit[n] = p;
  cnt++;
  for (auto nn : G[n]) {
    if (visit[nn] != -1) continue;
    src(G, nn, p);
  }
}
int main() {
  int N, M, K;
  cin >> N >> M >> K;
  vector<int> f(N, 1), ans(N, 0);
  for (long long i = 0; i < M; i++) {
    int a, b;
    cin >> a >> b;
    --a;
    --b;
    f[a] += 1;
    f[b] += 1;
    G[a].push_back(b);
    G[b].push_back(a);
  }
  for (long long i = 0; i < N; i++) {
    if (visit[i] != -1) continue;
    cnt = 0;
    src(G, i, i);
    int c = 0;
    for (int j = i; j < N; j++) {
      if (c > cnt) break;
      if (visit[j] == i) {
        c++;
        ans[j] = cnt - f[j];
      }
    }
  }
  for (long long i = 0; i < K; i++) {
    int c, d;
    cin >> c >> d;
    c--, d--;
    if (visit[c] == visit[d]) {
      f[c]++, f[d]++;
      ans[c]--;
      ans[d]--;
    }
  }
  for (long long i = 0; i < N; i++) {
    cout << ans[i] << " ";
  }
  cout << endl;
}
