#include <algorithm>
#include <cstdio>
using namespace std;
#define maxn 5000
#define maxm 100000
int main(){
int i,j,n,m,p,cost[maxm+1],a[maxn];
long long int dp[maxn],opt,c;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)scanf("%d",&a[i]);
sort(a,a+n);
for(i=1;i<=m;i++)scanf("%d",&cost[i]);
for(i=m-1;i>0;i--)
if(cost[i]>cost[i+1])cost[i]=cost[i+1];
for(i=0;i<n;i++){
p=a[i]+1;
opt=cost[p-a[0]];
for(j=0;j<i;j++){
c=dp[j]+cost[p-a[j+1]];
if(c<opt)opt=c;
}
dp[i]=opt;
}
printf("%lld\n",dp[n-1]);
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIG1heG4gNTAwMAojZGVmaW5lIG1heG0gMTAwMDAwCgppbnQgbWFpbigpewogIAogICAgaW50IGksaixuLG0scCxjb3N0W21heG0rMV0sYVttYXhuXTsKICAgIGxvbmcgbG9uZyBpbnQgZHBbbWF4bl0sb3B0LGM7CiAgICAKICAgIHNjYW5mKCIlZCVkIiwmbiwmbSk7CiAgICBmb3IoaT0wO2k8bjtpKyspc2NhbmYoIiVkIiwmYVtpXSk7CiAgICBzb3J0KGEsYStuKTsKICAgIAogICAgZm9yKGk9MTtpPD1tO2krKylzY2FuZigiJWQiLCZjb3N0W2ldKTsKICAgIGZvcihpPW0tMTtpPjA7aS0tKQogICAgICAgIGlmKGNvc3RbaV0+Y29zdFtpKzFdKWNvc3RbaV09Y29zdFtpKzFdOwogICAgCiAgICBmb3IoaT0wO2k8bjtpKyspewogICAgICAgIHA9YVtpXSsxOwoJICAgIG9wdD1jb3N0W3AtYVswXV07CgkgICAgZm9yKGo9MDtqPGk7aisrKXsKCSAgICAgICBjPWRwW2pdK2Nvc3RbcC1hW2orMV1dOwoJICAgICAgIGlmKGM8b3B0KW9wdD1jOwoJICAgIH0KCSAgICBkcFtpXT1vcHQ7CiAgICB9CiAgICAKICAgIHByaW50ZigiJWxsZFxuIixkcFtuLTFdKTsKICAgIHJldHVybiAwOwp9Cg==