#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "<>n>>x>>y>>z; //vi a(n); priority_queue p; int use=0; REP(i,n) { int tmp; cin>>tmp; if(z>0){ use = min(z,tmp/10000); tmp -= use*10000; z -= use; } p.push(tmp); } while(z>0 && !p.empty()){ auto q = p.top(); p.pop(); //ここでzが余っているということはp内の金額はすべて0円以上10000円未満 z--; } while(y>0 && !p.empty()){ auto q = p.top(); p.pop(); if(q < 5000) { p.push(q); break; } use = min(y,q/5000); q -= use*5000; p.push(q); y -= use; } while(y>0 && !p.empty()){ auto q = p.top(); p.pop(); y--; } while(x>0 && !p.empty()){ auto q = p.top(); p.pop(); if(q < 1000){ p.push(q); break; } use = min(x,q/1000); q -= use*1000; p.push(q); x -= use; } while(x>0 && !p.empty()){ auto q = p.top(); p.pop(); x--; } if(p.empty()) cout << "Yes" << endl; else cout << "No" << endl; return 0; }