#include "bits/stdc++.h" using namespace std; typedef long long ll; #define INF (1<<30) #define INFLL (1ll<<60) typedef pair P; typedef pair E; #define MOD (1000000007ll) #define l_ength size #define EPS (1e-10) void add_mod(ll &a, ll b){ a += b; a %= MOD; } void mul_mod(ll &a, ll b){ a *= b; a %= MOD; } int n,s[2222],t[2222],y[2222]; ll m[2222],memo[55][334]; vector g[2222]; bool done[55][334]; ll dp(int i, int lft){ int j,k; if(done[i][lft]){ return memo[i][lft]; } done[i][lft] = true; memo[i][lft] = INFLL; if(i == (n-1)){ memo[i][lft] = 0ll; return memo[i][lft]; } for(j=(g[i].l_ength()-1); j>=0; --j){ k = g[i][j]; if(lft >= y[k]){ memo[i][lft] = min(memo[i][lft],dp(t[k],lft-y[k])+m[k]); } } return memo[i][lft]; } int main(void){ int v,i,c; fill(done[0],done[55],false); cin >> n >> c >> v; for(i=0; i> s[i]; --s[i]; g[s[i]].push_back(i); } for(i=0; i> t[i]; --t[i]; } for(i=0; i> y[i]; } for(i=0; i> m[i]; } cout << ((dp(0,c)==INFLL)?-1ll:dp(0,c)) << endl; return 0; }