#include #include #include using namespace std; int memo[10010][500]; int func(int t, int k, vector& v, vector& c) { int& res=memo[t][k]; if (res) return res; res=0; for(int i=k;i=c[i]) res=max(res, func(t-c[i], i+1, v, c)+v[i]); return res; } int main() { int t, n; while (cin>>t>>n) { vector c(n), v(n); for(int& x: c) cin>>x; for(int& x: v) cin>>x; for(int i=0;i