#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
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];
sort(b.begin(), b.end());
int pwm = (1 << m);
bool ans = true;
vector<bool> vis(pwm, 0);
queue<int> que;
que.push(0);
for (int i = 0; i < n; i++) {
auto q = que; que = {};
while (!q.empty()) {
auto v = q.front(); q.pop();
for (int j = 1; j < pwm; j++) {
auto cur = v;
int sum = 0;
for (int k = 0; (1 << k) <= j; k++) {
int pw = (1 << k);
if (j & pw) {
if (!(v & pw)) {
sum += b[k];
cur |= pw;
}
else {
sum = -1;
break;
}
}
}
if (sum == a[i] and !vis[cur]) {
que.push(cur);
vis[cur] = true;
}
}
}
if (que.empty()) {
ans = false;
break;
}
}
cout << (ans ? "YES" : "NO") << '\n';
}