#include <bits/stdc++.h> // This will work only for g++ compiler.
#include<math.h>
#define for0(i, n) for (int i = 0; i < (int)(n); ++i)
#define for1(i, n) for (int i = 1; i <= (int)(n); ++i)
#define forc(i, l, r) for (int i = (int)(l); i <= (int)(r); ++i)
#define forr0(i, n) for (int i = (int)(n) - 1; i >= 0; --i)
#define forr1(i, n) for (int i = (int)(n); i >= 1; --i)
#define pb push_back
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define tr(c,i) for(__typeof__((c)).begin() i = (c).begin(); i != (c).end(); i++)
#define present(c,x) ((c).find(x) != (c).end())
#define cpresent(c,x) (find(all(c),x) != (c).end())
#define sz(a) int((a).size())
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef long long ll;
typedef vector<ll> vll;
typedef vector<vll> vvll;
typedef double ld;
long long gcd(long long a, long long b) {
if (b == 0) return a;
else return gcd(b, a % b);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int t;
cin >> t;
while(t--) {
int n, q;
cin >> n >> q;
vector<ll> arr(n);
for0(i, n) cin >> arr[i];
ll sum = 0;
for0(i, n) sum += arr[i];
vector<ll> preSum(n + 1, 0);
for1(i, n) {
preSum[i] = preSum[i-1] + arr[i-1];
}
while (q--) {
ll l, r, k;
cin >> l >> r >> k;
ll add = (r - l + 1) * k;
ll rem = preSum[r] - preSum[l-1];
ll fin = sum - rem + add;
if (fin % 2 == 1) cout << "Yes\n";
else cout << "No\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+ICAvLyBUaGlzIHdpbGwgd29yayBvbmx5IGZvciBnKysgY29tcGlsZXIuIAojaW5jbHVkZTxtYXRoLmg+CgojZGVmaW5lIGZvcjAoaSwgbikgZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KShuKTsgKytpKQojZGVmaW5lIGZvcjEoaSwgbikgZm9yIChpbnQgaSA9IDE7IGkgPD0gKGludCkobik7ICsraSkKI2RlZmluZSBmb3JjKGksIGwsIHIpIGZvciAoaW50IGkgPSAoaW50KShsKTsgaSA8PSAoaW50KShyKTsgKytpKQojZGVmaW5lIGZvcnIwKGksIG4pIGZvciAoaW50IGkgPSAoaW50KShuKSAtIDE7IGkgPj0gMDsgLS1pKQojZGVmaW5lIGZvcnIxKGksIG4pIGZvciAoaW50IGkgPSAoaW50KShuKTsgaSA+PSAxOyAtLWkpCgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSByYWxsKHgpICh4KS5yYmVnaW4oKSwgKHgpLnJlbmQoKQojZGVmaW5lIHRyKGMsaSkgZm9yKF9fdHlwZW9mX18oKGMpKS5iZWdpbigpIGkgPSAoYykuYmVnaW4oKTsgaSAhPSAoYykuZW5kKCk7IGkrKykKI2RlZmluZSBwcmVzZW50KGMseCkgKChjKS5maW5kKHgpICE9IChjKS5lbmQoKSkKI2RlZmluZSBjcHJlc2VudChjLHgpIChmaW5kKGFsbChjKSx4KSAhPSAoYykuZW5kKCkpCiNkZWZpbmUgc3ooYSkgaW50KChhKS5zaXplKCkpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8dmk+IHZ2aTsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsKdHlwZWRlZiB2ZWN0b3I8aWk+IHZpaTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bGw7CnR5cGVkZWYgdmVjdG9yPHZsbD4gdnZsbDsKdHlwZWRlZiBkb3VibGUgbGQ7Cgpsb25nIGxvbmcgZ2NkKGxvbmcgbG9uZyBhLCBsb25nIGxvbmcgYikgewogICAgaWYgKGIgPT0gMCkgcmV0dXJuIGE7CiAgICBlbHNlIHJldHVybiBnY2QoYiwgYSAlIGIpOwp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CgogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSkgewogICAgICAgIGludCBuLCBxOwogICAgICAgIGNpbiA+PiBuID4+IHE7CiAgICAgICAgdmVjdG9yPGxsPiBhcnIobik7CiAgICAgICAgZm9yMChpLCBuKSBjaW4gPj4gYXJyW2ldOwogICAgICAgIAogICAgICAgIGxsIHN1bSA9IDA7CiAgICAgICAgZm9yMChpLCBuKSBzdW0gKz0gYXJyW2ldOwogICAgICAgIAogICAgICAgIHZlY3RvcjxsbD4gcHJlU3VtKG4gKyAxLCAwKTsKICAgICAgICBmb3IxKGksIG4pIHsKICAgICAgICAgICAgcHJlU3VtW2ldID0gcHJlU3VtW2ktMV0gKyBhcnJbaS0xXTsKICAgICAgICB9CgogICAgICAgIHdoaWxlIChxLS0pIHsKICAgICAgICAgICAgbGwgbCwgciwgazsKICAgICAgICAgICAgY2luID4+IGwgPj4gciA+PiBrOwogICAgICAgICAgICBsbCBhZGQgPSAociAtIGwgKyAxKSAqIGs7CiAgICAgICAgICAgIGxsIHJlbSA9IHByZVN1bVtyXSAtIHByZVN1bVtsLTFdOwogICAgICAgICAgICBsbCBmaW4gPSBzdW0gLSByZW0gKyBhZGQ7CiAgICAgICAgICAgIGlmIChmaW4gJSAyID09IDEpIGNvdXQgPDwgIlllc1xuIjsKICAgICAgICAgICAgZWxzZSBjb3V0IDw8ICJOb1xuIjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=