#t = int(input()) t = 1 for _ in range(t): n,m,k = map(int, input().split()) cou = [0]*n tf = [False]*n for i in range(m): a,b = map(int, input().split()) a -= 1 b -= 1 cou[b] += 1 tf[a] = True lis = [] aa = tf.count(True) res = (k+1)-aa for i in range(n): if not tf[i]: lis.append(cou[i]) lis.sort(reverse = True) ans = 0 for i in range(n): if tf[i]: ans += min(cou[i],k) for i in range(res): ans += min(k,lis[i]) print(max(aa,k+1)*k - ans)