import sequtils, strutils, algorithm, math, future, sets, tables, hashes, intsets, deques let read = iterator : string {.closure.} = (while true: (for s in stdin.readLine.split : yield s)) var n,x,y,z = read().parseint a = newseqwith(n, read().parseint + 1) maisu = {1000: x, 5000: y, 10000: z}.toTable proc calc(satsu: int) = a.sort(Descending) for i in 0 ..< n: var cur = a[i] if a[i] >= satsu: a[i] -= min(maisu[satsu] * satsu, a[i] div satsu * satsu) maisu[satsu] = max(0, maisu[satsu] - (cur - a[i]) div satsu) if maisu[satsu] == 0: break a.sort(Descending) for i in 0 ..< n: var cur = a[i] if a[i] > 0: a[i] -= min(maisu[satsu] * satsu, (a[i] + satsu - 1) div satsu * satsu) maisu[satsu] = max(0, maisu[satsu] - (cur - a[i] + satsu - 1) div satsu) if maisu[satsu] == 0: break calc(10000) calc(5000) calc(1000) if a.filterit(it > 0).len != 0: echo "No" else: echo "Yes"