#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;
}
