def multiply(a, b): n = len(a) res = [[False] * n for _ in range(n)] for i in range(n): for k in range(n): if a[i][k]: for j in range(n): if b[k][j]: res[i][j] = True return res def matrix_pow(mat, power): n = len(mat) result = [[False] * n for _ in range(n)] for i in range(n): result[i][i] = True # Identity matrix current = [row[:] for row in mat] while power > 0: if power % 2 == 1: result = multiply(result, current) current = multiply(current, current) power = power // 2 return result def main(): import sys input = sys.stdin.read().split() idx = 0 n = int(input[idx]) idx += 1 m = int(input[idx]) idx += 1 T = int(input[idx]) idx += 1 edges = [[] for _ in range(n)] for _ in range(m): a = int(input[idx]) idx += 1 b = int(input[idx]) idx += 1 edges[a].append(b) out_degree = [len(edges[i]) for i in range(n)] mat = [[False] * n for _ in range(n)] for i in range(n): if out_degree[i] >= 1: for j in edges[i]: mat[i][j] = True if T == 0: print(1) return mt = matrix_pow(mat, T) count = sum(mt[0][j] for j in range(n)) print(count) if __name__ == "__main__": main()