N,M,K=map(int,input().split()) P=[0]*301 Q=[0]*301 C=[0]*301 for i in range(M): p,q,c=map(int,input().split()) P[i]=p-1 Q[i]=q-1 C[i]=c mod=10**9+7 dp=[[[0]*(K+1) for _ in range(300)] for _ in range(N)] for i in range(300): dp[0][i][0]=1 for i in range(N-1): for j in range(M): p=P[j] q=Q[j] c=C[j] for cost in range(K+1): if cost+c>K:continue dp[i+1][q][cost+c]+=dp[i][p][cost] dp[i+1][q][cost+c]%=mod ans=0 for i in range(300): ans+=dp[N-1][i][K] ans%=mod print(ans)