#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int MOD = 158400;
const int MOD2 = 998244353;
const int INF = LLONG_MAX/2;
int primes[1000000];
void seive(){
fill(primes, primes + 1000000, 1);
primes[0] = primes[1] = 0;
for(int i = 2 ; i*i < 1000000 ; i++){
if(primes[i]){
for(int j = i*i ; j < 1000000 ; j += i){
primes[j] = 0;
}
}
}
for(int i = 1 ; i < 1000000 ; i++){
primes[i] += primes[i-1];
}
}
int factorial(int n){
if(n==0){
return 1;
}
return (n*(factorial(n-1)))%MOD;
}
bool isPrime(int n){
if(n <= 1) return false;
for(int i = 2 ; i*i <= n ; i++){
if(n % i == 0) return false;
}
return true;
}
int power(int a, int b){
if(b == 0) return 1;
a %= MOD;
int value = power(a, b / 2);
if(b % 2 == 0){
return (value * value) % MOD;
} else {
return ((value * value) % MOD * (a % MOD)) % MOD;
}
}
int gcd(int a, int b){
if(a == 0) return b;
return gcd(b % a, a);
}
void solve() {
int n,power;
cin>>n>>power;
int damage[n],health[n];
for(int i = 0 ; i<n ; i++){
cin>>damage[i];
}
for(int i = 0 ; i<n ; i++){
cin>>health[i];
}
for(int i = 0 ; i<n ; i++){
health[i] = (health[i]+power-1)/power;
}
vector<pair<double,int>>v;
int sum = 0;
for(int i = 0 ; i<n ; i++){
double f = double(damage[i])/double(health[i]);
v.push_back({f, i});
sum += damage[i];
}
sort(v.begin(),v.end());
int sum2 = 0;
for(int i = n-1 ; i>=0 ; i--){
int index = v[i].second;
sum2 += (sum)*health[index];
sum -= damage[index];
}
cout<<sum2<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(NULL);
//int t;
//cin >> t;
//while(t--){
solve();
//}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBpbnQgbG9uZyBsb25nCmNvbnN0IGludCBNT0QgPSAxNTg0MDA7CmNvbnN0IGludCBNT0QyID0gOTk4MjQ0MzUzOwpjb25zdCBpbnQgSU5GID0gTExPTkdfTUFYLzI7CgppbnQgcHJpbWVzWzEwMDAwMDBdOwoKdm9pZCBzZWl2ZSgpewogICAgZmlsbChwcmltZXMsIHByaW1lcyArIDEwMDAwMDAsIDEpOwogICAgcHJpbWVzWzBdID0gcHJpbWVzWzFdID0gMDsKICAgIGZvcihpbnQgaSA9IDIgOyBpKmkgPCAxMDAwMDAwIDsgaSsrKXsKICAgICAgICBpZihwcmltZXNbaV0pewogICAgICAgICAgICBmb3IoaW50IGogPSBpKmkgOyBqIDwgMTAwMDAwMCA7IGogKz0gaSl7CiAgICAgICAgICAgICAgICBwcmltZXNbal0gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpID0gMSA7IGkgPCAxMDAwMDAwIDsgaSsrKXsKICAgICAgICBwcmltZXNbaV0gKz0gcHJpbWVzW2ktMV07CiAgICB9Cn0KaW50IGZhY3RvcmlhbChpbnQgbil7CiAgICBpZihuPT0wKXsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAobiooZmFjdG9yaWFsKG4tMSkpKSVNT0Q7Cn0KYm9vbCBpc1ByaW1lKGludCBuKXsKICAgIGlmKG4gPD0gMSkgcmV0dXJuIGZhbHNlOwogICAgZm9yKGludCBpID0gMiA7IGkqaSA8PSBuIDsgaSsrKXsKICAgICAgICBpZihuICUgaSA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKaW50IHBvd2VyKGludCBhLCBpbnQgYil7CiAgICBpZihiID09IDApIHJldHVybiAxOwogICAgYSAlPSBNT0Q7CiAgICBpbnQgdmFsdWUgPSBwb3dlcihhLCBiIC8gMik7CiAgICBpZihiICUgMiA9PSAwKXsKICAgICAgICByZXR1cm4gKHZhbHVlICogdmFsdWUpICUgTU9EOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKCh2YWx1ZSAqIHZhbHVlKSAlIE1PRCAqIChhICUgTU9EKSkgJSBNT0Q7CiAgICB9Cn0KCmludCBnY2QoaW50IGEsIGludCBiKXsKICAgIGlmKGEgPT0gMCkgcmV0dXJuIGI7CiAgICByZXR1cm4gZ2NkKGIgJSBhLCBhKTsKfQp2b2lkIHNvbHZlKCkgewogICAgaW50IG4scG93ZXI7CiAgICBjaW4+Pm4+PnBvd2VyOwogICAgaW50IGRhbWFnZVtuXSxoZWFsdGhbbl07CiAgICBmb3IoaW50IGkgPSAwIDsgaTxuIDsgaSsrKXsKICAgICAgICBjaW4+PmRhbWFnZVtpXTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDAgOyBpPG4gOyBpKyspewogICAgICAgIGNpbj4+aGVhbHRoW2ldOwogICAgfQogICAgZm9yKGludCBpID0gMCA7IGk8biA7IGkrKyl7CiAgICAgICAgaGVhbHRoW2ldID0gKGhlYWx0aFtpXStwb3dlci0xKS9wb3dlcjsKICAgIH0KICAgIHZlY3RvcjxwYWlyPGRvdWJsZSxpbnQ+PnY7CiAgICBpbnQgc3VtID0gMDsKICAgIGZvcihpbnQgaSA9IDAgOyBpPG4gOyBpKyspewogICAgICAgIGRvdWJsZSBmID0gZG91YmxlKGRhbWFnZVtpXSkvZG91YmxlKGhlYWx0aFtpXSk7CiAgICAgICAgdi5wdXNoX2JhY2soe2YsIGl9KTsKICAgICAgICBzdW0gKz0gZGFtYWdlW2ldOwogICAgfQogICAgc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7CiAgICBpbnQgc3VtMiA9IDA7CiAgICBmb3IoaW50IGkgPSBuLTEgOyBpPj0wIDsgaS0tKXsKICAgICAgICBpbnQgaW5kZXggPSB2W2ldLnNlY29uZDsKICAgICAgICBzdW0yICs9IChzdW0pKmhlYWx0aFtpbmRleF07CiAgICAgICAgc3VtIC09IGRhbWFnZVtpbmRleF07CiAgICB9CiAgICBjb3V0PDxzdW0yPDxlbmRsOwp9CgpzaWduZWQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwogICAgLy9pbnQgdDsKICAgIC8vY2luID4+IHQ7CiAgICAvL3doaWxlKHQtLSl7CiAgICAgICAgc29sdmUoKTsKICAgIC8vfQogICAgcmV0dXJuIDA7Cn0KCg==