#include <iostream>
#include <algorithm>
#include <utility>
#include <vector>
#include <map>
using namespace std;
#define all_p p + 1, p + n + 1
#define pi pair<int, int>
#define D first
#define L second
#define d a[i].D
#define l a[i].L
const int N = 2e5 + 5;
pi a[N];
int n, m, ans;
int p[N], vis[N];
vector<int> g[N];
signed main() {
cin >> n >> m;
for (int i = 1; i <= n; ++i) cin >> p[i];
for (int i = 1; i <= m; ++i) cin >> l;
for (int i = 1; i <= m; ++i) cin >> d;
sort(all_p);
sort(a + 1, a + m + 1);
for (int i = m; i; --i) {
int k1 = lower_bound(all_p, l) - p;
int k2 = lower_bound(all_p, d) - p;
if (k1 >= k2) {
p[k1] -= d;
vis[i] = 1;
}
else {
g[k1].push_back(i);
g[k2].push_back(i);
}
}
for (int j = 1; j <= n; ++j)
if (!g[j].empty())
for (int x = 0; x < g[j].empty(); ++x) {
int i = g[j][x];
if (!vis[i]) {
vis[i] = 1;
p[j] -= d;
break;
}
}
for (int i = 1; i <= n; ++i)
ans += p[i];
cout << ans;
return 0;
}