#include <bits/stdc++.h>
#define F first
#define S second
#define ent '\n'
#define pb push_back
#define int long long
#define sigma signed
typedef long double ld;
typedef long long ll;
using namespace std;
const int maxn = 2e6 + 25;
const int T = 0;
const int mod = 1e9 + 7;
int n,m,k,z,q;
int a[maxn],b[maxn],dp[maxn];
string s;
void solve(){
cin>>n>>m;
for (int i=0;i<n;i++) {
cin>>a[i];
if (i>0)a[i]+=a[i-1];
}
for (int i=0;i<m;i++) {
cin>>b[i];
}
for (int mask=0;mask<(1<<m);mask++) {
if (dp[mask]==n)break;
int sum=a[dp[mask]];
for (int i=0;i<m;i++) {
if (mask&(1<<i)) {
sum-=b[i];
}
}
for (int i=0;i<m;i++) {
if (mask&(1<<i))continue;
dp[mask|(1<<i)]=max(dp[mask|(1<<i)],dp[mask] + (sum==b[i]));
}
}
for (int i=0;i<(1<<m);i++) {
if (dp[i]==n) {
cout<<"YES";
return;
}
}
cout<<"NO";
}
sigma main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t=1;
if(T)cin>>t;
while(t--)solve();
}