from collections import defaultdict MOD = 998244353 N, M, K = map(int, input().split()) adj = defaultdict(list) for _ in range(M): u, v = map(lambda x: int(x)-1, input().split()) adj[u].append(v) adj[v].append(u) def pack(keys: list[int]) -> int: # K+1 進数 res = 0 b = 1 for k in keys: res += k * b b *= (K+1) # assert keys == unpack(res), (keys, unpack(res)) return res def unpack(x: int) -> list[int]: res = [] s = x b = K+1 for i in range(N): res.append(s % b) s //= b return res def tsp(start): size = pow(K+1, N) dp = [[0] * N for _ in range(size)] # dp[各都市の訪問回数][最後に訪れた都市] keys = [0] * N keys[start] = 1 dp[pack(keys)][start] = 1 for i in range(size): cnts = unpack(i) for j in range(N): # 最後に訪れた都市 if cnts[j] == 0: continue for to in adj[j]: if cnts[to] == K: continue xs = cnts.copy() xs[to] += 1 nk = pack(xs) dp[nk][to] += dp[i][j] dp[nk][to] %= MOD nk = pack([K] * N) res = sum(dp[nk][i] for i in range(N)) % MOD return res ans = sum(tsp(i) for i in range(N)) % MOD print(ans)