MOD=10**9+7 n=300 N,M,K=map(int,input().split()) PQC=[0]*M for i in range(M): PQC[i]=tuple(map(int,input().split())) dp0=[[0]*(K+1) for i in range(n)] dp1=[[0]*(K+1) for i in range(n)] for i in range(n): dp0[i][0]=1 for t in range(N-1): for p,q,c in PQC: p-=1 q-=1 for num in range(K+1): nnum=num+c if nnum>K: continue if t%2==0: dp1[q][nnum]+=dp0[p][num] if dp1[q][num]>=MOD: dp1[q][nnum]-=MOD else: dp0[q][nnum]+=dp1[p][num] if dp0[q][nnum]>=MOD: dp0[q][nnum]-=MOD if t%2==0: dp0=[[0]*(K+1) for i in range(n)] else: dp1=[[0]*(K+1) for i in range(n)] ans=0 for i in range(n): ans=(ans+dp0[i][K]+dp1[i][K])%MOD print(ans)