#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
long long minDamage(int power, vector<int>& damage, vector<int>& health) {
int n = damage.size();
vector<pair<double, int>> threat(n);
for (int i = 0; i < n; i++) {
double time_to_kill = ceil(double(health[i]) / power);
threat[i] = {double(time_to_kill) / damage[i], i};
}
ll total_sum = accumulate(damage.begin(), damage.end(), 0ll);
sort(threat.begin(), threat.end());
ll ans = 0;
for (int i = 0; i < n; i++) {
int idx = threat[i].second;
int time_to_kill = ceil(double(health[idx]) / power);
ans = ans + total_sum * time_to_kill;
total_sum = total_sum - damage[idx];
}
return ans;
}
int main() {
int n;
cin>>n;
int power;
cin>>power;
vector<int> damage(n);
vector<int> health(n);
for(int i=0;i<n;i++){
cin>>damage[i];
}
for(int i=0;i<n;i++){
cin>>health[i];
}
cout<<minDamage(power , damage , health);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CgoKCiAgICBsb25nIGxvbmcgbWluRGFtYWdlKGludCBwb3dlciwgdmVjdG9yPGludD4mIGRhbWFnZSwgdmVjdG9yPGludD4mIGhlYWx0aCkgewogICAgICAgIGludCBuID0gZGFtYWdlLnNpemUoKTsKICAgICAgICB2ZWN0b3I8cGFpcjxkb3VibGUsIGludD4+IHRocmVhdChuKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkb3VibGUgdGltZV90b19raWxsID0gY2VpbChkb3VibGUoaGVhbHRoW2ldKSAvIHBvd2VyKTsKICAgICAgICAgICAgdGhyZWF0W2ldID0ge2RvdWJsZSh0aW1lX3RvX2tpbGwpIC8gZGFtYWdlW2ldLCBpfTsKICAgICAgICB9CgogICAgICAgIGxsIHRvdGFsX3N1bSA9IGFjY3VtdWxhdGUoZGFtYWdlLmJlZ2luKCksIGRhbWFnZS5lbmQoKSwgMGxsKTsKICAgICAgICBzb3J0KHRocmVhdC5iZWdpbigpLCB0aHJlYXQuZW5kKCkpOwoKICAgICAgICBsbCBhbnMgPSAwOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpbnQgaWR4ID0gdGhyZWF0W2ldLnNlY29uZDsKICAgICAgICAgICAgaW50IHRpbWVfdG9fa2lsbCA9IGNlaWwoZG91YmxlKGhlYWx0aFtpZHhdKSAvIHBvd2VyKTsKICAgICAgICAgICAgYW5zID0gYW5zICsgdG90YWxfc3VtICogdGltZV90b19raWxsOwogICAgICAgICAgICB0b3RhbF9zdW0gPSB0b3RhbF9zdW0gLSBkYW1hZ2VbaWR4XTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFuczsKICAgIH0KCmludCBtYWluKCkgewoJaW50IG47CgljaW4+Pm47CglpbnQgcG93ZXI7CgljaW4+PnBvd2VyOwoJCgl2ZWN0b3I8aW50PiBkYW1hZ2Uobik7Cgl2ZWN0b3I8aW50PiBoZWFsdGgobik7Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljaW4+PmRhbWFnZVtpXTsKCX0KCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWNpbj4+aGVhbHRoW2ldOwoJCQoJfQoJCgljb3V0PDxtaW5EYW1hZ2UocG93ZXIgLCBkYW1hZ2UgLCBoZWFsdGgpOwoJCglyZXR1cm4gMDsKfQ==