#include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; int chmax(ll &a,ll b){ if(a>n>>k; vector c(n),d(n); rep(i,n) cin>>c.at(i); rep(i,n) cin>>d.at(i); vector dp(k+1,-1); vector sz(k+1,0); dp.at(0)=0; sz.at(0)=1; rep(j,k){ rep(i,n){ if(j+c.at(i)>k) break; if(chmax(dp.at(j+c.at(i)),dp.at(j)+d.at(i))){ sz.at(j+c.at(i))=sz.at(j); }else if(dp.at(j+c.at(i))==dp.at(j)+d.at(i)){ sz.at(j+c.at(i))+=sz.at(j); } } } ll ans=-1; mint cnt=0; rep(i,k+1){ if(chmax(ans,dp.at(i))){ cnt=sz.at(i); } } cout<