import sys def input(): return sys.stdin.readline()[:-1] MOD = 10**9+7 n, m, k = map(int, input().split()) dp = [[[0 for _ in range(k+1)] for _ in range(300)] for _ in range(n)] visited = [[[False for _ in range(k+1)] for _ in range(300)] for _ in range(n)] adj = [[] for _ in range(301)] for _ in range(m): p, q, c = map(int, input().split()) adj[q-1].append((p-1, c)) def rec(i, j, l): if visited[i][j][l]: return dp[i][j][l] if i == 0 and l == 0: return 1 elif i <= 0 or l < 0: return 0 else: res = 0 for p, c in adj[j]: res += rec(i-1, p, l-c) res %= MOD dp[i][j][l] = res visited[i][j][l] = True return res ans = 0 for j in range(300): ans += rec(n-1, j, k) ans %= MOD print(ans)