#pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; int main() { cin.tie(0); ios::sync_with_stdio(false); int N, M, L; cin >> N >> M >> L; vector A(N); for( int i = 0; i < N; i++ ) { cin >> A[i]; } vector dp1(M+2), dp2(M+2); dp1[min(M+1, L)] = 1; for( int i = 0; i < N; i++ ) { for( int l = 0; l <= M+1; l++ ) { if( dp1[l] == 0 ) continue; dp2[l] |= dp1[l]; dp2[min(M+1, (l+A[i])/2)] |= dp1[l]; } swap(dp1, dp2); fill(dp2.begin(), dp2.end(), 0); } cout << ( dp1[M] ? "Yes" : "No" ) << endl; }