#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;
}