#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]; } int K = 1000005; vector dp1(K), dp2(K); dp1[min(K-1, L)] = 1; for( int i = 0; i < N; i++ ) { for( int l = 0; l < K; l++ ) { dp2[l] |= dp1[l]; dp2[min(K-1, (l+A[i])/2)] |= dp1[l]; } swap(dp1, dp2); fill(dp2.begin(), dp2.end(), 0); } cout << ( dp1[M] ? "Yes" : "No" ) << endl; }