#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
vector<ll> a(n), b(n), c(m);
ll A = 0;
for(int i = 0; i < n; i++){
cin >> a[i];
A = max(A, a[i]);
}
for(int i = 0; i < n; i++){
cin >> b[i];
}
for(int j = 0; j < m; j++){
cin >> c[j];
}
// 1) best[x] = min(a_i - b_i) over all i with a_i <= x
const ll INF = (ll)1e18;
vector<ll> best(A+1, INF);
for(int i = 0; i < n; i++){
ll delta = a[i] - b[i];
best[a[i]] = min(best[a[i]], delta);
}
// prefix-min so that best[x] = min over all a_i <= x
for(int x = 1; x <= A; x++){
best[x] = min(best[x], best[x-1]);
}
// 2) ans[x] = max XP from exactly x ingots when x <= A
vector<ll> ans(A+1, 0);
for(int x = 1; x <= A; x++){
if(best[x] == INF){
// can't do even one forge+ melt cycle
ans[x] = 0;
} else {
// one cycle costs best[x] ingots and gives 2 XP
ans[x] = 2 + ans[x - best[x]];
}
}
// 3) Process each metal pile c[j]
ll res = 0;
ll dA = best[A]; // the cheapest cycle cost at A
for(ll x : c){
if(x <= A){
res += ans[x];
} else {
// first do k cycles to bring x down to <= A
ll need = x - A;
ll k = (need + dA - 1) / dA; // ceil(need / dA)
ll rem = x - k * dA; // now rem <= A
res += 2*k + ans[rem];
}
}
cout << res << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IG4sIG07CiAgICBjaW4gPj4gbiA+PiBtOwogICAgdmVjdG9yPGxsPiBhKG4pLCBiKG4pLCBjKG0pOwogICAgbGwgQSA9IDA7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBBID0gbWF4KEEsIGFbaV0pOwogICAgfQogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgY2luID4+IGJbaV07CiAgICB9CiAgICBmb3IoaW50IGogPSAwOyBqIDwgbTsgaisrKXsKICAgICAgICBjaW4gPj4gY1tqXTsKICAgIH0KCiAgICAvLyAxKSBiZXN0W3hdID0gbWluKGFfaSAtIGJfaSkgb3ZlciBhbGwgaSB3aXRoIGFfaSA8PSB4CiAgICBjb25zdCBsbCBJTkYgPSAobGwpMWUxODsKICAgIHZlY3RvcjxsbD4gYmVzdChBKzEsIElORik7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBsbCBkZWx0YSA9IGFbaV0gLSBiW2ldOwogICAgICAgIGJlc3RbYVtpXV0gPSBtaW4oYmVzdFthW2ldXSwgZGVsdGEpOwogICAgfQogICAgLy8gcHJlZml4LW1pbiBzbyB0aGF0IGJlc3RbeF0gPSBtaW4gb3ZlciBhbGwgYV9pIDw9IHgKICAgIGZvcihpbnQgeCA9IDE7IHggPD0gQTsgeCsrKXsKICAgICAgICBiZXN0W3hdID0gbWluKGJlc3RbeF0sIGJlc3RbeC0xXSk7CiAgICB9CgogICAgLy8gMikgYW5zW3hdID0gbWF4IFhQIGZyb20gZXhhY3RseSB4IGluZ290cyB3aGVuIHggPD0gQQogICAgdmVjdG9yPGxsPiBhbnMoQSsxLCAwKTsKICAgIGZvcihpbnQgeCA9IDE7IHggPD0gQTsgeCsrKXsKICAgICAgICBpZihiZXN0W3hdID09IElORil7CiAgICAgICAgICAgIC8vIGNhbid0IGRvIGV2ZW4gb25lIGZvcmdlKyBtZWx0IGN5Y2xlCiAgICAgICAgICAgIGFuc1t4XSA9IDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gb25lIGN5Y2xlIGNvc3RzIGJlc3RbeF0gaW5nb3RzIGFuZCBnaXZlcyAyIFhQCiAgICAgICAgICAgIGFuc1t4XSA9IDIgKyBhbnNbeCAtIGJlc3RbeF1dOwogICAgICAgIH0KICAgIH0KCiAgICAvLyAzKSBQcm9jZXNzIGVhY2ggbWV0YWwgcGlsZSBjW2pdCiAgICBsbCByZXMgPSAwOwogICAgbGwgZEEgPSBiZXN0W0FdOyAgLy8gdGhlIGNoZWFwZXN0IGN5Y2xlIGNvc3QgYXQgQQogICAgZm9yKGxsIHggOiBjKXsKICAgICAgICBpZih4IDw9IEEpewogICAgICAgICAgICByZXMgKz0gYW5zW3hdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIGZpcnN0IGRvIGsgY3ljbGVzIHRvIGJyaW5nIHggZG93biB0byA8PSBBCiAgICAgICAgICAgIGxsIG5lZWQgPSB4IC0gQTsKICAgICAgICAgICAgbGwgayA9IChuZWVkICsgZEEgLSAxKSAvIGRBOyAgLy8gY2VpbChuZWVkIC8gZEEpCiAgICAgICAgICAgIGxsIHJlbSA9IHggLSBrICogZEE7ICAgICAgICAgIC8vIG5vdyByZW0gPD0gQQogICAgICAgICAgICByZXMgKz0gMiprICsgYW5zW3JlbV07CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgcmVzIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQo=