#include #include #include using std::vector; using std::cin; using std::cout; void maximize(int &lhs, const int rhs) { if (lhs < rhs) { lhs = rhs; } } int main() { int N, Q, P; cin >> N >> Q >> P; vector A(N); for (auto &x: A) { cin >> x; } vector> dp(N + 1, vector(P, -1)); for (int i = 0; i < N; ++i) { for (int j = 0; j < P; ++j) { maximize(dp[i + 1][j], dp[i][j]); maximize(dp[i + 1][(j * A[i]) % P], dp[i][j]); } dp[i + 1][A[i]] = i; } while (Q--) { int l, r, k; cin >> l >> r >> k; l -= 1; if (dp[r][k] >= l) { cout << "Yes\n"; } else { cout << "No\n"; } } return 0; }