#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1000 + 10;
long long a[N], b[N], n, m, l, r, res;
bool f[N], ff;
void find_(int val)
{
r = n;
while (l < r) {
int mid = l + r >> 1;
if (b[mid] > val) r = mid;
else l = mid + 1;
}
if (b[l] <= val) {
ff = 1; //标记没找到能够破坏防御系统的炸弹
return;
}
f[l] = 1, l++;
return;
}
int main()
{
//freopen("C:\\Users\\HP\\Desktop\\P2813_1.in", "r", stdin);
cin >> m >> n;
for (int i = 1; i <= m; i++) cin >> a[i];
for (int i = 1; i <= n; i++) cin >> b[i];
sort(a + 1, a + m + 1);
sort(b + 1, b + n + 1);
if (a[m] >= b[n] || m >= n) { cout << 0 << endl; return 0; };
l = 1;
for (int i = 1; i <= m; i++) {
if (a[i] <= 0) continue;
find_(a[i]);
if (ff) {
cout << 0 << endl;
return 0;
}
}
for (int i = 1; i <= n; i++) {
if (!f[i]) res += b[i];
}
cout << res << endl;
return 0;
}