#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> b(n);
vector<int> g(n);
// Input values for b and g arrays (0-based indexing)
for (int i = 0; i < n; ++i) {
cin >> b[i];
}
for (int i = 0; i < n; ++i) {
cin >> g[i];
}
priority_queue<int, vector<int>, greater<int>> pq; // Min heap
vector<pair<int, int>> sortedPairs;
// Store values in a vector of pairs
for (int i = 0; i < n; ++i) {
sortedPairs.push_back({g[i], b[i]});
}
// Sort pairs by g[i] in ascending order
sort(sortedPairs.begin(), sortedPairs.end());
int sum = 0;
int result = 0;
for (int i = n - 1; i >= 0; --i) { // Iterate in reverse order
pq.push(sortedPairs[i].second);
int p = pq.size();
if (p <= k - 1) {
sum += sortedPairs[i].second;
} else {
sum += sortedPairs[i].second;
sum -= pq.top();
pq.pop();
int temp = sortedPairs[i].first * (sortedPairs[i].second + sum);
result = max(result, temp);
}
}
cout << result << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxhbGdvcml0aG0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICAKICAgIHZlY3RvcjxpbnQ+IGIobik7CiAgICB2ZWN0b3I8aW50PiBnKG4pOwoKICAgIC8vIElucHV0IHZhbHVlcyBmb3IgYiBhbmQgZyBhcnJheXMgKDAtYmFzZWQgaW5kZXhpbmcpCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGNpbiA+PiBiW2ldOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IGdbaV07CiAgICB9CgogICAgcHJpb3JpdHlfcXVldWU8aW50LCB2ZWN0b3I8aW50PiwgZ3JlYXRlcjxpbnQ+PiBwcTsgLy8gTWluIGhlYXAKCiAgICB2ZWN0b3I8cGFpcjxpbnQsIGludD4+IHNvcnRlZFBhaXJzOwoKICAgIC8vIFN0b3JlIHZhbHVlcyBpbiBhIHZlY3RvciBvZiBwYWlycwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBzb3J0ZWRQYWlycy5wdXNoX2JhY2soe2dbaV0sIGJbaV19KTsKICAgIH0KCiAgICAvLyBTb3J0IHBhaXJzIGJ5IGdbaV0gaW4gYXNjZW5kaW5nIG9yZGVyCiAgICBzb3J0KHNvcnRlZFBhaXJzLmJlZ2luKCksIHNvcnRlZFBhaXJzLmVuZCgpKTsKCiAgICBpbnQgc3VtID0gMDsKICAgIGludCByZXN1bHQgPSAwOwoKICAgIGZvciAoaW50IGkgPSBuIC0gMTsgaSA+PSAwOyAtLWkpIHsgIC8vIEl0ZXJhdGUgaW4gcmV2ZXJzZSBvcmRlcgogICAgICAgIHBxLnB1c2goc29ydGVkUGFpcnNbaV0uc2Vjb25kKTsKICAgICAgICBpbnQgcCA9IHBxLnNpemUoKTsKCiAgICAgICAgaWYgKHAgPD0gayAtIDEpIHsKICAgICAgICAgICAgc3VtICs9IHNvcnRlZFBhaXJzW2ldLnNlY29uZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdW0gKz0gc29ydGVkUGFpcnNbaV0uc2Vjb25kOwogICAgICAgICAgICBzdW0gLT0gcHEudG9wKCk7CiAgICAgICAgICAgIHBxLnBvcCgpOwoKICAgICAgICAgICAgaW50IHRlbXAgPSBzb3J0ZWRQYWlyc1tpXS5maXJzdCAqIChzb3J0ZWRQYWlyc1tpXS5zZWNvbmQgKyBzdW0pOwogICAgICAgICAgICByZXN1bHQgPSBtYXgocmVzdWx0LCB0ZW1wKTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCByZXN1bHQgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=