N,M,T = map(int,input().split()) R = [[0] * N for _ in range(N)] for _ in range(M): s,t = map(int,input().split()) R[s][t] = 1 R[t][s] = 1 P = 998244353 def seki(x,y): l = [[0] * N for _ in range(N)] for i in range(N): for j in range(N): for k in range(N): l[i][j] = (l[i][j] + x[i][k] * y[k][j]) % P return l e = [[0] * N for _ in range(N)] for i in range(N): e[i][i] = 1 while T: if T & 1: e = seki(e,R) R = seki(R,R) T >>= 1 print(e[0][0])