#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
k = min(k, n - 1);
k++;
vector<long long> a(n), b(n);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = 0; i < n; ++i) cin >> b[i];
for (int i = 0; i < n; ++i)
b.push_back(b[i]);
deque<int> dq;
for (int i = 0; i < k; ++i)
{
while (!dq.empty() && b[dq.back()] >= b[i])
dq.pop_back();
dq.push_back(i);
}
long long ans = 0;
for (int i = 0; i < n; ++i)
{
ans += a[i] * b[dq.front()];
while (!dq.empty() && b[dq.back()] >= b[i + k])
dq.pop_back();
dq.push_back(i + k);
if (!dq.empty() && dq.front() <= i)
dq.pop_front();
}
cout << ans << '\n';
return 0;
}