import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
class
GFG {
static
boolean
getans(
int
i, List<Integer> v,
int
[] q) {
if
(i == q.length) {
return
true
;
}
for
(
int
j =
0
; j < v.size(); j++) {
if
(v.get(j) >= q[i]) {
v.set(j, v.get(j) - q[i]);
if
(getans(i +
1
, v, q)) {
return
true
;
}
v.set(j, v.get(j) + q[i]);
}
}
return
false
;
}
static
void
check(
int
[] c,
int
[] b) {
Map<Integer, Integer> m =
new
HashMap<>();
for
(
int
i =
0
; i < b.length; i++) {
m.put(b[i],
0
);
}
for
(
int
i =
0
; i < b.length; i++) {
m.put(b[i], m.get(b[i]) +
1
);
}
List<Integer> v =
new
ArrayList<>();
for
(Map.Entry<Integer, Integer> entry : m.entrySet()) {
v.add(entry.getValue());
}
boolean
check = getans(
0
, v, c);
if
(check) {
System.out.println(
"YES"
);
}
else
{
System.out.println(
"NO"
);
}
}
public
static
void
main(String[] args) {
int
[] c = {
1
,
3
,
3
};
int
[] b = {
2
,
2
,
2
,
2
,
4
,
4
,
4
};
check(c, b);
}
}