#include <bits/stdc++.h>
using namespace std;
#define int long long
const int sz = 1<<20;
vector<int> dp(sz, -1);
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
int sum = 0;
int sal[n];
int bank[m];
for(int i = 0; i < n; i++){
cin >> sal[i];
sum += sal[i];
}for(int j = 0; j < m; j++){
cin >> bank[j];
}dp[0] = 0;
for(int mask = 1; mask < sz; mask++){
for(int i = 0; i < m; i++){
if(mask&(1<<i) && dp[mask^(1<<i)] >= 0){
int c = dp[mask^(1<<i)];
int ind = 0;
while(c >= sal[ind]){
c -= sal[ind];
ind++;
}
c = sal[ind] - c;
if(bank[i] <= c){
dp[mask] = dp[mask^(1<<i)] + bank[i];
}
if(dp[mask] == sum){
cout << "YES\n";
return 0;
}
}
}
}cout << "NO\n";
return 0;
}