
#include<bits/stdc++.h>
#define int long long
using namespace std;
int v[100],x[110];
int s[110];
int dp[100010];
int n,b;
int s_dp(int n)
{
dp[0]=0;
for(int i=1;i<=100000;i++)dp[i]=0;
int c;
for(int i=1;i<=n;i++)
{
c=100000;
for(int j=1;j<=b;j++)
if(i-v[j]>=0)
c=min(c,dp[i-v[j]]);
dp[i]=c+1;
}
return dp[n];
}
signed main()
{
cin>>n>>b;
for(int i=1;i<=b;i++)cin>>v[i];
for(int i=1;i<=n;i++)cin>>x[i];
s[1]=x[1];
for(int i=2;i<=n;i++)
{
if(x[i-1]==0)s[i]=x[i]-x[i-1];
else s[i]=x[i]-x[i-1]+1;
}
int ans=0;
for(int i=1;i<=n;i++)
if(s[i]>0)ans+=s_dp(s[i]);
else if(s[i]<0)
{
cout<<-1;
return 0;
}
cout<<ans;
return 0;
}