MOD = 998244353 N, K = map(int, input().split()) C = list(map(int, input().split())) D = list(map(int, input().split())) max_d = [-1] * (K + 1) count = [0] * (K + 1) max_d[0] = 0 count[0] = 1 for s in range(K + 1): if count[s] == 0: continue for i in range(N): c = C[i] d = D[i] new_s = s + c if new_s > K: continue new_d = max_d[s] + d if new_d > max_d[new_s]: max_d[new_s] = new_d count[new_s] = count[s] elif new_d == max_d[new_s]: count[new_s] = (count[new_s] + count[s]) % MOD max_happiness = max(max_d) total = 0 for s in range(K + 1): if max_d[s] == max_happiness: total = (total + count[s]) % MOD print(max_happiness) print(total)