#include <iostream>
using namespace std;
int main(void){
    double x,y,z;cin >> x >> y >> z;
    double ta=y/x;
    for(double i=0;;i++){
        double s=i/z;
        if(s>=ta){
            cout << i-1 << endl;
            return 0;
        }
    }
}

#pragma GCC target ("avx2")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("O3")
#include "bits/stdc++.h"
#include <unordered_set>
#include <unordered_map>
#include <random>
using namespace std;
typedef long long ll;
const ll MOD = /*1'000'000'007LL;*/ 998'244'353LL;
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define rep(i, n) for(int (i)=0; (i)<(n); (i)++)
const int dy[4]={ -1,0,1,0 };
const int dx[4]={ 0,-1,0,1 };

int N;
ll H[200000];
int M;
ll W[200000];

signed main(){
	cin >> N >> M;
	rep(i, N) cin >> H[i];
	rep(i, M) cin >> W[i];

	sort(H, H+N);
	sort(W, W+M);
	ll tmp = 0;
	rep(i, N){
		if(i%2 == 0) tmp += H[i];
		else tmp -= H[i];
	}

	ll ans = LLONG_MAX;
	int j = 0;
	rep(i, M){
		while(j < N && H[j] < W[i]){
			if(j%2 == 0) tmp -= 2*H[j];
			else tmp += 2*H[j];
			j++;
		}
		//cout << tmp << " " << (j%2 == 0 ? -W[i] : W[i]) << endl;
		ans = min(ans, tmp + (j%2 == 0 ? -W[i] : W[i]));
	}
	cout << ans << endl;
}