#include <bits/stdc++.h>
using namespace std;
#define ar array
#define ll long long
const int inf = 2e9;
void solve() {
int n, m;
cin >> n >> m;
vector<int> a(n), b(m);
for (int i = 0; i < n;i++)
cin >> a[i];
for (int i = 0; i < m;i++)
cin >> b[i];
vector<int> dp(1 << m, -1), rem(1 << m, 0);
dp[0] = rem[0] = 0;
for (int mask = 0; mask < (1 << m);mask++) {
for (int i = 0; i < m; i++) {
if (!(mask >> i & 1))
continue;
int prev = mask & ~(1 << i);
if (dp[prev] == -1 || dp[prev] == n)
continue;
int tar = a[dp[prev]];
int cur = b[i] + rem[prev];
if (cur < tar) {
dp[mask] = dp[prev];
rem[mask] = cur;
}else if (cur == tar) {
dp[mask] = dp[prev] + 1;
rem[mask] = 0;
}
}
if (dp[mask] == n)
return (void)(cout << "YES");
}
cout << "NO";
}
int32_t main() {
#ifdef Behruz
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios :: sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
solve();
return 0;
}