#include <iostream>
#include <algorithm>
#include <cmath>
#include <climits>

using namespace std;

const int MAX_M = 100000;
const int MAX_N = 100000;

int main() {
    int m, n;
    // 读取学校数量 m 和学生数量 n
    cin >> m >> n;

    int schools[MAX_M];
    // 读取 m 个学校的预计录取分数
    for (int i = 0; i < m; i++) {
        cin >> schools[i];
    }
    // 对学校分数线进行排序
    sort(schools, schools + m);

    int students[MAX_N];
    // 读取 n 个学生的估分成绩
    for (int i = 0; i < n; i++) {
        cin >> students[i];
    }

    long long totalDissatisfaction = 0;
    // 遍历每个学生的估分
    for (int i = 0; i < n; i++) {
        int minDiff = INT_MAX;
        // 遍历所有学校的分数线,找到最接近的分数线
        for (int j = 0; j < m; j++) {
            int diff = abs(students[i] - schools[j]);
            if (diff < minDiff) {
                minDiff = diff;
            }
        }
        // 累加该学生的不满意度
        totalDissatisfaction += minDiff;
    }

    // 输出最小的不满意度总和
    cout << totalDissatisfaction << endl;

    return 0;
}
/**************************************************************
	Problem: 1899
	User: chenjingqi
	Language: C++
	Result: Time Limit Exceed
****************************************************************/