#include<bits/stdc++.h>
using namespace std;
long long n,ans,a[1100000],b,c[1100000],dp[1100000],k;
int main()
{
cin>>n>>b;
fill(dp+1,dp+100001,99999999);
for(int i=1;i<=b;i++)
{
cin>>a[i];
for(int j=a[i];j<=1000001;j++)
dp[j]=min(dp[j],dp[j-a[i]]+1);
}
for(int i=1;i<=n;i++)
{
cin>>c[i];k=c[i];
if(i!=1&&c[i-1]!=0) k-=c[i-1]-1;
if(dp[k]==99999999||k<0){cout<<-1;return 0;}
ans+=dp[k];
}
cout<<ans;
return 0;
}