N,M,K=map(int,input().split()) p,q,c=0,0,0 mod=10**9+7 G=[[] for i in range(300)] for i in range(M): p,q,c=map(int,input().split()) G[p-1].append((q-1,c)) DP=[[[0]*(K+1) for j in range(300)] for i in range(N+1)] for i in range(300): DP[0][i][0]=1 for i in range(N): for j in range(300): for k in range(len(G[j])): for l in range(K+1): if l+G[j][k][1]<=K: DP[i+1][G[j][k][0]][l+G[j][k][1]]+=DP[i][j][l] DP[i+1][G[j][k][0]][l+G[j][k][1]]%=mod P=0 for i in range(300): P+=DP[N-1][i][K] print(P%mod)