N, M, T = map(int, input().split()) AB = [list(map(int, input().split())) for _ in range(M)] A = [[0] * N for _ in range(N)] for a, b in AB: A[b][a] = 1 D = N def mt(A, B): C = [[0] * D for _ in range(D)] for i in range(D): for j in range(D): tmp = 0 for k in range(D): tmp |= A[i][k] * B[k][j] C[i][j] = tmp return C X = [[0] * N for _ in range(N)] for i in range(N): X[i][i] = 1 while T > 0: if T & 1: X = mt(A, X) A = mt(A, A) T >>= 1 ans = 0 for i in range(N): ans += X[0][i] print(ans)