//本题需要特判,最后一个和第一个都是特殊情况
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5+9;
typedef long long ll;
ll n,m,num,cnt=0;
ll arr[N];
int main()
{
ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
cin>>m>>n;
for(int i=1;i<=m;++i)
{
cin>>arr[i];
}
sort(arr+1,arr+m+1);
// arr[0]=-1e12,arr[m+1]=1e12;
while(n--)
{
cin>>num;
ll left=1,right=m+1;
while(left<right)
{
ll mid = left + (right - left)/2;
if(arr[mid]>=num)
right = mid;
else
left = mid + 1;
}
if(num<=arr[1])//这里需要特判断一下,不然只能得70分
{
cnt+=arr[1]-num;
}
else
{
cnt+=min(abs(arr[left-1]-num),abs(arr[left]-num));//加上两个绝对值中最小
}
//cnt+=arr[left]-num>=num-arr[left-1]?num-arr[left-1]:arr[left]-num;
}
cout<<cnt;
return 0;
}