#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a void drop(const T &x){cout<>n; vector as(n),bs(n),cs(n); for(Int i=0;i>as[i]>>bs[i]>>cs[i]; if(n==1) drop(0); Int sum=0; for(Int i=0;i; vector

vp; for(Int bit=0;bit>1)&bit) continue; vector vs(h1); for(Int i=0;i+1>i)&1; Int flg=0; for(Int i=0;i+1 vq; for(auto p:vp) if(vq.empty()||vq.back().second>1)&bit) continue; vector vs(h2); for(Int i=0;i+1>i)&1; Int flg=0; for(Int i=0;i+1first+wei<=sum); chmax(ans,it->second+val); } } } // take [h1-1, h1] { using P = pair; vector

vp; for(Int bit=0;bit>1)&bit) continue; vector vs(h1); for(Int i=0;i+1>i)&1; Int flg=0; for(Int i=0;i+1 vq; for(auto p:vp) if(vq.empty()||vq.back().second>1)&bit) continue; vector vs(h2); for(Int i=0;i+1>i)&1; Int flg=0; for(Int i=0;i+1first+wei<=sum); chmax(ans,it->second+val); } } } cout<