output_description: Print the answers in order, with space in between.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M K
      A_1 B_1
      \vdots
      A_M B_M
      C_1 D_1
      \vdots
      C_K D_K
attempt: import sys
  from collections import deque
  
  # 再帰関数は非常にダメダメですねぇ
  
  N, M, K = map(int, input().split())
  friend = [list(map(int, input().split())) for _ in range(M)]
  block = [list(map(int, input().split())) for _ in range(K)]
  sys.setrecursionlimit(2 * N)
  # print(friend)
  # print(block)
  graph = [[] for _ in range(N)]
  bgraph = [[] for _ in range(N)]
  cnt = []
  for i in range(M):
      ii, jj = friend[i]
      graph[ii - 1].append(jj - 1)
      graph[jj - 1].append(ii - 1)
  
  for i in range(K):
      ii, jj = block[i]
      bgraph[ii - 1].append(jj - 1)
      bgraph[jj - 1].append(ii - 1)
  
  # print(graph)
  # print(bgraph)
  
  seen = [False for _ in range(N)]
  
  
  def dfs(i):
      # if i not in bgraph[j]:
      #    seen[i]= True
      # else:
      #    seen[i]="block"
      # if graph[i]:
      #    for nec in graph[i]:
      #        if seen[nec] == False:
      #            dfs(nec,j)
      seen[i] = True
      que = deque([i])
      while que:
  
          neci = que.pop()
          for nec in graph[neci]:
              if seen[nec] == False:
                  if nec not in bgraph[i]:
                      seen[nec] = True
                  else:
                      seen[nec] = "block"
                  que.append(nec)
  
  
  for i_n in range(N):
      seen = [False for _ in range(N)]
      dfs(i_n)
      # print(seen)
      cnt.append(seen.count(True) - 1 - len(graph[i_n]))
  
  print(*cnt)
  
problem_description: Statement
  
  An SNS has N users - User 1, User 2, \cdots, User N.
  
  Between these N users, there are some relationships - M _friendships_ and K
  _blockships_.
  
  For each i = 1, 2, \cdots, M, there is a bidirectional friendship between User
  A_i and User B_i.
  
  For each i = 1, 2, \cdots, K, there is a bidirectional blockship between User
  C_i and User D_i.
  
  We define User a to be a _friend candidate_ for User b when all of the
  following four conditions are satisfied:
  
    * a \neq b.
    * There is not a friendship between User a and User b.
    * There is not a blockship between User a and User b.
    * There exists a sequence c_0, c_1, c_2, \cdots, c_L consisting of integers between 1 and N (inclusive) such that c_0 = a, c_L = b, and there is a friendship between User c_i and c_{i+1} for each i = 0, 1, \cdots, L - 1.
  
  For each user i = 1, 2, ... N, how many friend candidates does it have?
samples: [{"input": "4 4 1\n    2 1\n    1 3\n    3 2\n    3 4\n    4 1", "output": "0 1 0 1\n    \n\nThere is a friendship between User 2 and 3, and between 3 and 4. Also, there\nis no friendship or blockship between User 2 and 4. Thus, User 4 is a friend\ncandidate for User 2.\n\nHowever, neither User 1 or 3 is a friend candidate for User 2, so User 2 has\none friend candidate.\n\n* * *"}, {"input": "5 10 0\n    1 2\n    1 3\n    1 4\n    1 5\n    3 2\n    2 4\n    2 5\n    4 3\n    5 3\n    4 5", "output": "0 0 0 0 0\n    \n\nEveryone is a friend of everyone else and has no friend candidate.\n\n* * *"}, {"input": "10 9 3\n    10 1\n    6 7\n    8 2\n    2 5\n    8 4\n    7 3\n    10 9\n    6 4\n    5 8\n    2 6\n    7 5\n    3 1", "output": "1 3 5 4 3 3 3 3 1 0"}]