import sys rr = sys.stdin N,M,T = map(int,rr.readline().split()) R = [[0] * N for _ in range(N)] for _ in range(M): a,b = map(int,rr.readline().split()) R[b][a] = 1 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] |= x[i][k] & y[k][j] return l tmp = [[0] * N for _ in range(N)] for i in range(N): tmp[i][i] = 1 while T: if T & 1: tmp = seki(tmp,R) T >>= 1 R = seki(R,R) ans = 0 for i in range(N): ans += tmp[i][0] print(ans)