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): 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[c+k][q] += dp[k][j] dp2[c+k][q] %= mod dp = dp2 print(sum(dp[K])%mod)