def mul1(mod=998244353): n = len(graph) ret = [[0]*n for i in range(n)] for i in range(n): for j in range(n): for k in range(n): ret[i][j] += graph[i][k] * graph[k][j] ret[i][j] %= mod return ret def mul2(mod=998244353): n = len(graph) ret = [[0]*n for i in range(n)] for i in range(n): for j in range(n): for k in range(n): ret[i][j] += graph[i][k] * ans[k][j] ret[i][j] %= mod return ret n, m, t = map(int, input().split()) mod = 998244353 graph = [[0]*n for i in range(n)] for i in range(m): a, b = map(int, input().split()) graph[a][b] = 1 graph[b][a] = 1 ans = [[0]*n for i in range(n)] for i in range(n): ans[i][i] = 1 t_bin = bin(t)[2:] for i in range(len(t_bin))[::-1]: if t_bin[i] == "1": ans = mul2() graph = mul1() print(ans[0][0])