#include using namespace std; typedef long long ll; typedef long double ld; #define REP(i, n) for (int i = 0; i < (n); ++i) #define REPR(i, n) for (int i = n - 1; i >= 0; --i) #define FOR(i, m, n) for (int i = m; i < n; ++i) #define FORR(i, m, n) for (int i = m; i >= n; --i) #define ALL(v) (v).begin(),(v).end() templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n >> m >> k; vector p(m),q(m),c(m); vector>> a(300); REP(i,m){ cin >> p[i] >> q[i] >> c[i]; p[i]--,q[i]--; a[p[i]].push_back({q[i],c[i]}); } ll dp[n][k+1][300]={}; REP(i,300){ dp[0][0][i]=1; } REP(i,n-1){ REP(j,k+1){ REP(l,300){ if(!dp[i][j][l]){ continue; } for(auto v:a[l]){ if(j+v.second<=k){ (dp[i+1][j+v.second][v.first]+=dp[i][j][l])%=mod; } } } } } ll ans=0; REP(i,300){ (ans+=dp[n-1][k][i])%=mod; } cout << ans << endl; }