#d



        

#     import sys

#     input = sys.stdin.readline



n,m,k = list(map(int,input().split()))



friends_pair=[]

friend=[[] for _ in range(n)]

for i in range(m):

    a,b = list(map(int,input().split()))

    a-=1

    b-=1

    friends_pair.append((a,b))

    friend[a].append(b)

    friend[b].append(a) 

        

    

block=[]

for i in range(k):

    a,b = list(map(int,input().split()))

    block.append((a-1,b-1))



from collections import deque

clusters=[]

visited=[0]*n

list_cluster=[0]*n

i_c=0

# while sum(visited)<n:

#     for i in range(n):

#         if visited[i]==0:

#             start=i

#             break

for i in range(n):

    if visited[i]==0:

        start=i

    else:

        continue



    cluster =[start]

    q=deque([(start,togo) for togo in friend[start]]) #スタート地点から行ける場所を列挙

    visited[start]=1

    list_cluster[start]=i_c

    for togo in friend[start]:

        visited[togo]=1

        cluster.append(togo)

        list_cluster[togo]=i_c

    while q:

        parent,x = q.popleft()

        for y in friend[x]:

            if y == parent:#親ノードを飛ばし

                continue

            if visited[y]==0:

                q.append((x,y))#子ノードを追加

                visited[y]=1

                cluster.append(y)

                list_cluster[y]=i_c

#        print(parent,x,q)

    clusters.append(cluster)

    i_c+=1



ans = [len(clusters[list_cluster[i]])-1 for i in range(n)  ]

for f0,f1 in friends_pair:

    if list_cluster[f0] ==  list_cluster[f1]:

        ans[f0]-=1

        ans[f1]-=1

for b0,b1 in block:

    if list_cluster[b0] ==  list_cluster[b1]:

        ans[b0]-=1

        ans[b1]-=1

print((*ans))

#d



        

#     import sys

#     input = sys.stdin.readline



n,m,k = list(map(int,input().split()))



friends_pair=[]

friend=[[] for _ in range(n)]

for i in range(m):

    a,b = list(map(int,input().split()))

    a-=1

    b-=1

    friends_pair.append((a,b))

    friend[a].append(b)

    friend[b].append(a) 

        

    

block=[]

for i in range(k):

    a,b = list(map(int,input().split()))

    block.append((a-1,b-1))



from collections import deque

clusters=[]

visited=[0]*n

list_cluster=[0]*n

i_c=0



for i in range(n):

    if visited[i]==0:

        start=i

    else:

        continue



    cluster =[start]

    q=deque([(start,togo) for togo in friend[start]]) #スタート地点から行ける場所を列挙

    visited[start]=1

    list_cluster[start]=i_c

    for togo in friend[start]:

        visited[togo]=1

        cluster.append(togo)

        list_cluster[togo]=i_c

    while q:

        parent,x = q.popleft()

        for y in friend[x]:

#             if y == parent:#親ノードを飛ばし

#                 continue

            if visited[y]==0:

                q.append((x,y))#子ノードを追加

                visited[y]=1

                cluster.append(y)

                list_cluster[y]=i_c

#        print(parent,x,q)

    clusters.append(cluster)

    i_c+=1



ans = [len(clusters[list_cluster[i]])-1 for i in range(n)  ]

for f0,f1 in friends_pair:

    if list_cluster[f0] ==  list_cluster[f1]:

        ans[f0]-=1

        ans[f1]-=1

for b0,b1 in block:

    if list_cluster[b0] ==  list_cluster[b1]:

        ans[b0]-=1

        ans[b1]-=1

print((*ans))

# d
#     import sys
#     input = sys.stdin.readline
n, m, k = list(map(int, input().split()))
friends_pair = []
friend = [[] for _ in range(n)]
for i in range(m):
    a, b = list(map(int, input().split()))
    a -= 1
    b -= 1
    friends_pair.append((a, b))
    friend[a].append(b)
    friend[b].append(a)
block = []
for i in range(k):
    a, b = list(map(int, input().split()))
    block.append((a - 1, b - 1))
from collections import deque

clusters = []
visited = [0] * n
list_cluster = [0] * n
i_c = 0
# while sum(visited)<n:
#     for i in range(n):
#         if visited[i]==0:
#             start=i
#             break
for i in range(n):
    if visited[i] == 0:
        start = i
    else:
        continue
    cluster = [start]
    q = deque([(start, togo) for togo in friend[start]])  # スタート地点から行ける場所を列挙
    visited[start] = 1
    list_cluster[start] = i_c
    for togo in friend[start]:
        visited[togo] = 1
        cluster.append(togo)
        list_cluster[togo] = i_c
    while q:
        parent, x = q.popleft()
        for y in friend[x]:
            if y == parent:  # 親ノードを飛ばし
                continue
            if visited[y] == 0:
                q.append((x, y))  # 子ノードを追加
                visited[y] = 1
                cluster.append(y)
                list_cluster[y] = i_c
    #        print(parent,x,q)
    clusters.append(cluster)
    i_c += 1
ans = [len(clusters[list_cluster[i]]) - 1 for i in range(n)]
for f0, f1 in friends_pair:
    if list_cluster[f0] == list_cluster[f1]:
        ans[f0] -= 1
        ans[f1] -= 1
for b0, b1 in block:
    if list_cluster[b0] == list_cluster[b1]:
        ans[b0] -= 1
        ans[b1] -= 1
print((*ans))

# d
#     import sys
#     input = sys.stdin.readline
n, m, k = list(map(int, input().split()))
friends_pair = []
friend = [[] for _ in range(n)]
for i in range(m):
    a, b = list(map(int, input().split()))
    a -= 1
    b -= 1
    friends_pair.append((a, b))
    friend[a].append(b)
    friend[b].append(a)
block = []
for i in range(k):
    a, b = list(map(int, input().split()))
    block.append((a - 1, b - 1))
from collections import deque

clusters = []
visited = [0] * n
list_cluster = [0] * n
i_c = 0
for i in range(n):
    if visited[i] == 0:
        start = i
    else:
        continue
    cluster = [start]
    q = deque([(start, togo) for togo in friend[start]])  # スタート地点から行ける場所を列挙
    visited[start] = 1
    list_cluster[start] = i_c
    for togo in friend[start]:
        visited[togo] = 1
        cluster.append(togo)
        list_cluster[togo] = i_c
    while q:
        parent, x = q.popleft()
        for y in friend[x]:
            #             if y == parent:#親ノードを飛ばし
            #                 continue
            if visited[y] == 0:
                q.append((x, y))  # 子ノードを追加
                visited[y] = 1
                cluster.append(y)
                list_cluster[y] = i_c
    #        print(parent,x,q)
    clusters.append(cluster)
    i_c += 1
ans = [len(clusters[list_cluster[i]]) - 1 for i in range(n)]
for f0, f1 in friends_pair:
    if list_cluster[f0] == list_cluster[f1]:
        ans[f0] -= 1
        ans[f1] -= 1
for b0, b1 in block:
    if list_cluster[b0] == list_cluster[b1]:
        ans[b0] -= 1
        ans[b1] -= 1
print((*ans))

-# while sum(visited)<n: -#     for i in range(n): -#         if visited[i]==0: -#             start=i -#             break -            if y == parent:  # 親ノードを飛ばし -                continue +            #             if y == parent:#親ノードを飛ばし +            #                 continue