#include <bits/stdc++.h>
using namespace std;
#define FAST ios_base::sync_with_stdio(false);cin.tie(NULL);
using ll = long long;
template<typename T, typename U = T>
struct SegmentTree {
int n;
vector<T> tree;
ll MOD;
// ----------
template<typename VAL_T>
T get_tree_val(VAL_T& val) {
return (val % MOD);
}
T data_pull(T val_curr, U val_new) {
return (val_new);
}
T merge(T a, T b) {
return (a * b) % MOD;
}
// ----------
SegmentTree(int n = 0) : n(n) {
tree.resize(n<<2);
}
template<typename VAL_T>
SegmentTree(vector<VAL_T>& data, ll x) : SegmentTree((int)data.size()) {
MOD = x;
__build(0, 0, n-1, data);
}
template<typename VAL_T>
void __build(int ti, int left, int right, vector<VAL_T>& data) {
if (left == right) {
tree[ti] = get_tree_val(data[left]);
return;
}
int tl, tr, tm;
tl = (ti<<1)+1;
tr = (ti<<1)+2;
tm = (left+right)>>1;
__build(tl, left, tm, data);
__build(tr, tm+1, right, data);
tree[ti] = merge(tree[tl], tree[tr]);
}
void __update(int ti, int left, int right, int ind, U val) {
if (left == right) {
tree[ti] = data_pull(tree[ti], val);
return;
}
int tl, tr, tm;
tl = (ti<<1)+1;
tr = (ti<<1)+2;
tm = (left+right)>>1;
if (ind <= tm) __update(tl, left, tm, ind, val);
else __update(tr, tm+1, right, ind, val);
tree[ti] = merge(tree[tl], tree[tr]);
}
T __query(int ti, int left, int right, int l, int r) {
if ((l <= left) && (right <= r)) return tree[ti];
int tl, tr, tm;
tl = (ti<<1)+1;
tr = (ti<<1)+2;
tm = (left+right)>>1;
if (l > tm) return __query(tr, tm+1, right, l, r);
if (r <= tm) return __query(tl, left, tm, l, r);
return merge(
__query(tl, left, tm, l, r),
__query(tr, tm+1, right, l, r)
);
}
void update(int i, U val) { __update(0, 0, n-1, i, val); }
T query(int l, int r) { return __query(0, 0, n-1, l, r); }
};
int main() {
FAST;
int tc = 1, ti;
cin >> tc;
for (ti = 1; ti <= tc; ++ti) {
ll n, q, i, l, r, x;
cin >> n >> x;
vector<ll> a(n);
for (i = 0; i < n; ++i) cin >> a[i];
SegmentTree<ll> seg(a, x);
cin >> q; while (q--) {
cin >> l >> r;
--l; --r;
x = seg.query(l, r);
if (x == 0) cout << "Yes" << "\n";
else cout << "No" << "\n";
}
}
return 0;
}