#ifndef INCLUDED_MAIN #define INCLUDED_MAIN #include __FILE__ int main(){ ll n,f; cin>>n>>f; vector aa(n),bb(n),cc(n); rep(i,n) cin>>aa[i]; rep(i,n) cin>>bb[i]; rep(i,n) cin>>cc[i]; vector cur; cur.push_back(0); rep(i,n) { vector canmake(n*f+1,false); vector nxt; ll a=aa[i],b=bb[i],c=cc[i]; for(auto sum:cur) { if(sum+a<=n*f) { if(!canmake[sum+a]){ canmake[sum+a]=true; nxt.push_back(sum+a); } } if(sum+b<=n*f) { if(!canmake[sum+b]){ canmake[sum+b]=true; nxt.push_back(sum+b); } } if(sum+c<=n*f) { if(!canmake[sum+c]){ canmake[sum+c]=true; nxt.push_back(sum+c); } } } cout< using namespace std; #define rep(i,n) for(int i=0;i0){ if(exp&1) result=(result*base)%mod; base=(base*base)%mod; exp>>=1; } } return result; } #endif