#include using namespace std; #include using namespace atcoder; using mint = modint998244353; void fast_io() { ios_base::sync_with_stdio(false); cin.tie(nullptr); } int main() { fast_io(); int n, k; cin >> n >> k; vector c(n), d(n); for (int i = 0; i < n; i++) { cin >> c[i]; } for (int i = 0; i < n; i++) { cin >> d[i]; } vector dp(k + 1); vector cnt(k + 1, 1); for (int i = k; i >= 0; i--) { for (int j = 0; j < n; j++) { if (i + c[j] <= k) { int score = dp[i + c[j]] + d[j]; if (dp[i] < score) { dp[i] = score; cnt[i] = cnt[i + c[j]]; } else if (dp[i] == score) { cnt[i] += cnt[i + c[j]]; } } } } cout << dp[0] << endl; cout << cnt[0].val() << endl; }