#include <bits/stdc++.h>
using namespace std;

void chmin(int64_t& a, int64_t b) {
  if (a > b) a = b;
}

int main() {
  int64_t n, m;
  cin >> n >> m;
  
  vector<int64_t> h(n);
  vector<int64_t> w(m);
  for (int64_t i = 0; i < n; i++) cin >> h.at(i);
  for (int64_t i = 0; i < m; i++) cin >> w.at(i);
  
  sort(h.begin(), h.end());
  sort(w.begin(), w.end());
  int64_t ans = 1e16;
  
  vector<int64_t> sum1((n+1)/2, 0), sum2((n+1)/2, 0);
  for (int i = 0; i < n-1; i += 2) {
    sum1.at(i / 2 + 1) = sum1.at(i / 2) + h.at(i+1) - h.at(i);
  }
  for (int i = n-2; i > 0; i -= 2) {
    sum2.at(i / 2) = sum2.at(i / 2 + 1) + h.at(i+1) - h.at(i); 
  }
  
  for (int64_t y : w) {
    int64_t x = lower_bound(h.begin(), h.end(), y) - h.begin();
    if (x & 1) x ^= 1;
    chmin(ans, sum1.at(x / 2) +  sum2.at(x / 2) + abs(h.at(x) - y));
  }
  
  cout << ans << endl;
  
  return 0;
}
#include<bits/stdc++.h>
using namespace std;

typedef pair<int,int> pii;
typedef pair<string,int> psi;
typedef pair<int,string> pis;
typedef array<int,2> aii;
typedef array<int,3> aiii;
typedef array<int,4> aiiii;
typedef unsigned long long ull;
typedef long long int ll;
typedef array<ll,2> all;
typedef array<ll,3> alll;
typedef array<ll,4> allll;

#define pb push_back
#define ff first
#define ss second
#define MAX 300005
#define MOD 1000000007
#define INF 2e9
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
vector<aii>adj[MAX];
int xMove[] = { 0,1,0,-1,1,1,-1,-1, 2, 2, -2, -2, 1, 1, -1, -1 };
int yMove[] = { 1,0,-1,0,1,-1,1,-1, 1, -1, 1, -1, 2, -2, 2, -2 };

int main()
{
    //freopen("input.in","r",stdin);
    //freopen("output.txt","w",stdout);
    cin.tie(0),cout.tie(0);
    ios_base::sync_with_stdio(0);
    cout.setf(ios::fixed);
    cout.precision(10);
    int TC=1;
    int n,m,k;

    //cin>>TC;
    for(int t1=1; t1<=TC; t1++)
    {
        cin>>n>>m;
        int arr[n],w[m];
        for(int i=0;i<n;i++)
            cin>>arr[i];
        for(int i=0;i<m;i++)
            cin>>w[i];

        sort(arr,arr+n);

        ll csum[n][2];
        memset(csum,0,sizeof csum);
        for(int i=1;i<n;i++)
        {
            if(i&1)
                csum[i][0]=arr[i]-arr[i-1];
            csum[i][0]+=csum[i-1][0];
        }
        for(int i=2;i<n;i++)
        {
            if(i%2==0)
                csum[i][1]=arr[i]-arr[i-1];
            csum[i][1]+=csum[i-1][1];
        }

        ll ans=1e18;
        for(int i=0;i<m;i++)
        {
            int pos=lower_bound(arr,arr+n,w[i])-arr;
            if(pos&1)
            {
                ll cur=w[i]-arr[pos-1];
                cur+=csum[pos-1][0];
                cur+=csum[n-1][1]-csum[pos-1][1];
                ans=min(ans,cur);
            }
            else
            {
                ll cur=arr[pos]-w[i];
                cur+=csum[pos][0];
                cur+=csum[n-1][1]-csum[pos][1];
                ans=min(ans,cur);
            }
        }

        cout<<ans<<"\n";
    }

    return 0;
}
