N,M,K = map(int, input().split()) lsPOC = [[] for i in range(300)] mod = 10**9+7 for i in range(M): P,O,C = map(int, input().split()) P -= 1 O -= 1 lsPOC[P].append((O,C)) dp = [[0]*300 for i in range(K+1)] dp[0] = [1]*300 for i in range(1,N+1): dp2 = [[0]*300 for i in range(K+1)] for j in range(300): for q,c in lsPOC[j]: for k in range(K+1): if c+k <= K: dp2[q][c+k] += dp[j][c] dp2[q][c+k] %= mod dp = dp2 print(sum(dp[K])%mod)