#!/usr/bin/python3

# Test python3 O(mlogm), not affecting time limit.
import sys
sys.setrecursionlimit(int(1e5) + 5)

n, m, k = [int(v) for v in sys.stdin.readline().split(' ')]

adj = [[] for _ in range(n + 1)]
edges = set()

for _ in range(m):
    x, y = [int(v) for v in sys.stdin.readline().split(' ')]
    edges.add((x, y))
    adj[x].append(y)
    adj[y].append(x)

def dfs(x, v, vs):
    v[x] = True
    vs.append(x)
    for y in adj[x]:
        if v[y]: continue
        dfs(y, v, vs)

ans = 0
v = [False] * (n + 1)
for x in range(1, n + 1):
    if v[x]: continue
    vs = []
    dfs(x, v, vs)
    sz = len(vs)
    if sz != k: continue

    ok = True
    for i in range(sz):
        a = vs[i]
        for j in range(i + 1, sz):
            b = vs[j]
            if (a, b) not in edges:
                ok = False
                break
        if not ok: break
    if ok: ans += 1

print (ans)
