#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #include int main() { unsigned N, Q; std::scanf("%u %u", &N, &Q); std::vector A(N); for (auto &x: A) { std::scanf("%u", &x); } while (Q--) { unsigned l, r, k; std::scanf("%u %u %u", &l, &r, &k); l -= 1; if (r - l > 1000) { std::puts("Yes"); } else { std::bitset<5001> dp; dp[0] = 1; for (unsigned i = l; i < r; ++i) { dp |= dp << A[i]; } std::puts(dp[k] ? "Yes" : "No"); } } }