#include <iostream>
#include <vector>
#include <algorithm>
#include <array>
#include <cmath>
#include <set>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef long double ld;
#define int ll
int k;
int solve(vector<int> p,vector<int> n)
{
if(p.size()==0)
{
return 1e18;
}
sort(begin(p),end(p));
sort(begin(n),end(n));
multiset<ll> curn,curp;
int sz=p.size();
int sz1=n.size();
for(int i=0;i<k and i<sz1;i++)
{
curn.insert(p[sz-1]-n[i]);
}
for(int i=0;i<k-sz1;i++)
{
curn.insert(p[sz-1]-p[i]);
}
// return 0;
ll dif=0;
int sm=0,smn=0,sm1=0;
int lsc=0,smg=0,grc=0;
for(auto x:curn)sm+=x;
for(auto x:n)smn+=x,lsc++;
for(auto x:p)smn+=x,lsc++;
int mi=0;
for(auto x:p)mi+=abs(x);
for(auto x:n)mi+=abs(x);
int j=sz-1;
for(int i=sz-1;i>=0;i--)
{
ll cur=lsc*p[i]-smn+smg - p[i]*grc;
while(j>i and curn.size()>0 and (*begin(curn))+(p[i]-p[sz-1])<(p[j]-p[i]))
{
sm-=(*begin(curn));
curn.erase(curn.begin());
curp.insert(p[j]-p[i]);
sm1+=(p[j]-p[i]);
j--;
}
// cout<<"for "<<i<<' '<<p[i]<<' '<<cur<<' ';
cur-=((sm+(p[i]-p[sz-1])*curn.size())+sm1);
// cout<<cur<<endl;
// if(cur==-1)
// {
// cout<<"Fudge "<<endl;
// cout<<sm<<' '<<sm1<<endl;
// cout<<p[i]<<' '<<i<<' '<<j<<endl;
// for(auto x:curn)
// cout<<x<<' ';
// cout<<endl;
// for(auto x:curp)
// cout<<x<<' ';
// cout<<endl;
// }
if(i>0){
// sm-=(p[i]-p[i-1])*(curn.size());
sm1+=(p[i]-p[i-1])*(curp.size());
}
lsc--;
smn-=p[i];
grc++;
smg+=p[i];
mi=min(mi,cur);
}
return mi;
}
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n>>k;
vector<int> a(n),b(n);
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++)cin>>b[i],b[i]-=a[i];
vector<int> neg,pos;
for(auto x:b)
{
if(x<0)
{
neg.push_back(x);
}
else
{
pos.push_back(x);
}
}
int cur=solve(pos,neg);
swap(pos,neg);
for(auto&x:pos)x*=-1;
for(auto&x:neg)x*=-1;
cur=min(cur,solve(pos,neg));
cout<<cur<<endl;
}