#include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, W; cin >> N >> W; const int MAX_X = 200000; vector X(N); vector Y(N); for (int i = 0; i < N; ++i) cin >> X[i]; for (int i = 0; i < N; ++i) cin >> Y[i]; vector weight_val(MAX_X + 1, 0); for (int i = 0; i < N; ++i) { weight_val[X[i]] += Y[i]; } long long ans = 0; for (int g = W; g <= MAX_X; ++g) { long long current_sum = 0; for (int multiple = g; multiple <= MAX_X; multiple += g) { current_sum += weight_val[multiple]; } ans = max(ans, current_sum); } cout << ans << endl; return 0; }