#include<bits/stdc++.h>
using namespace std;
int a[10010],b[10010],dp[20010];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
int ans = INT_MIN;
for(int i = 0;i <= 2 * n;i++) dp[i] = INT_MIN;
for(int i = 1;i <= m;i++) scanf("%d",a + i);
for(int i = 1;i <= n;i++) scanf("%d",b + i);
dp[1] = b[1];
for(int i = 1;i <= 2 * n;i++)
{
for(int j = 1;j <= m;j++)
{
if(i >= a[i]) dp[i] = max(dp[i],dp[i - a[j]] + b[i - a[j]]);
}
}
for(int x : dp) ans = max(ans,x);
printf("%d",ans);
return 0;
}