#include<bits/stdc++.h>
using namespace std;
long long n, m, a[100005], pref[100005], b[102];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
freopen("CHUNGKHOAN.INP", "r", stdin);
freopen("CHUNGKHOAN.OUT", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
pref[i] = pref[i - 1] + a[i];
}
for (int i = 1; i <= m; ++i) {
cin >> b[i];
}
vector<long long> prev_dp(n + 1, 0);
vector<long long> dp(n + 1, 0);
for (int j = 1; j <= m; ++j) {
for (int i = 1; i <= n; ++i) {
dp[i] = dp[i - 1];
dp[i] = max(dp[i], prev_dp[i]);
if (i >= b[j]) {
long long sum_segment = pref[i] - pref[i - b[j]];
dp[i] = max(dp[i], prev_dp[i - b[j]] + sum_segment);
}
}
prev_dp = dp;
}
cout << dp[n];
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBuLCBtLCBhWzEwMDAwNV0sIHByZWZbMTAwMDA1XSwgYlsxMDJdOwoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgZnJlb3BlbigiQ0hVTkdLSE9BTi5JTlAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIkNIVU5HS0hPQU4uT1VUIiwgInciLCBzdGRvdXQpOwoKICAgIGNpbiA+PiBuID4+IG07CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgcHJlZltpXSA9IHByZWZbaSAtIDFdICsgYVtpXTsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyArK2kpIHsKICAgICAgICBjaW4gPj4gYltpXTsKICAgIH0KCiAgICB2ZWN0b3I8bG9uZyBsb25nPiBwcmV2X2RwKG4gKyAxLCAwKTsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGRwKG4gKyAxLCAwKTsKCiAgICBmb3IgKGludCBqID0gMTsgaiA8PSBtOyArK2opIHsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICAgICAgZHBbaV0gPSBkcFtpIC0gMV07CiAgICAgICAgICAgIGRwW2ldID0gbWF4KGRwW2ldLCBwcmV2X2RwW2ldKTsKCiAgICAgICAgICAgIGlmIChpID49IGJbal0pIHsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdW1fc2VnbWVudCA9IHByZWZbaV0gLSBwcmVmW2kgLSBiW2pdXTsKICAgICAgICAgICAgICAgIGRwW2ldID0gbWF4KGRwW2ldLCBwcmV2X2RwW2kgLSBiW2pdXSArIHN1bV9zZWdtZW50KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwcmV2X2RwID0gZHA7CiAgICB9CgogICAgY291dCA8PCBkcFtuXTsKCiAgICByZXR1cm4gMDsKfQo=