from functools import cache MOD = 998244353 N, M, K = map(int, input().split()) G = [[] for i in range(N)] for _ in range(M): u, v = map(int, input().split()); u -= 1; v -= 1 G[u].append(v) G[v].append(u) P = [(K + 1) ** i for i in range(N + 1)] @cache def solve(v, vec): if vec == P[N] - 1: return 1 return sum(solve(nv, vec + P[nv]) for nv in G[v] if vec // P[nv] % (K + 1) < K) % MOD print(sum(solve(v, P[v]) for v in range(N)) % MOD)