#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100001],b,ans,le,up,mi;
int find_low(int l,int r,int x){
int L=l,R=r,mid,ans=-1;
while (L<=R){
mid=(L+R)/2;
if (a[mid]<x){
ans=a[mid];
L=mid+1;
}
else R=mid-1;
}
return ans;
}
int find_upp(int l,int r,int x){
int L=l,R=r,mid,ans=-1;
while (L<=R){
mid=(L+R)/2;
if (a[mid]>x){
ans=a[mid];
R=mid-1;
}
else L=mid+1;
}
return ans;
}
int find_equ(int l,int r,int x){
int L=l,R=r,mid,ans=-1;
while (L<=R){
mid=(L+R)/2;
if (a[mid]==x){
ans=a[mid];
R=mid-1;
}
else L=mid+1;
}
return ans;
}
int main(){
cin>>m>>n;
for (int i=1;i<=m;i++) cin>>a[i];
sort(a+1,a+m+1);
while (n--){
cin>>b;
le=find_low(1,m,b);
up=find_upp(1,m,b);
mi=find_equ(1,m,b);
if (mi==-1){
if (le==-1) ans+=up-b;
else if (up==-1) ans+=b-le;
else ans+=min(up-b,b-le);
}
}
cout<<ans;
}