int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
ll m, n;
cin >> m >> n;
vector<pair<ll, ll>> v;
for (ll i = 0; i < n; i++) {
ll x, y;
cin >> x >> y;
v.push_back({x, y});
}
sort(v.begin(), v.end());
bool valid = true;
vector<pair<ll, ll>> unique_v;
if (!v.empty()) {
unique_v.push_back(v[0]);
for (ll i = 1; i < v.size(); i++) {
if (v[i].first == v[i-1].first) {
if (v[i].second != v[i-1].second) {
valid = false;
}
} else {
unique_v.push_back(v[i]);
}
}
}
if (!valid) {
cout << "No\n";
continue;
}
v = unique_v;
for (auto &record : v) {
if (record.first < 0 || record.first > m) {
valid = false;
break;
}
}
if (!valid) {
cout << "No\n";
continue;
}
if (v.empty()) {
v.push_back({0, 0});
} else {
if (v[0].first != 0) {
v.insert(v.begin(), {0, 0});
} else if (v[0].second != 0) {
valid = false;
cout << "No\n";
continue;
}
}
for (ll i = 0; i < v.size() - 1; i++) {
ll x1 = v[i].first;
ll y1 = v[i].second;
ll x2 = v[i+1].first;
ll y2 = v[i+1].second;
if (x1 == x2) continue;
ll d = x2 - x1;
ll diff_val = abs(y2 - y1);
bool condA = false;
if (diff_val <= d && (d - diff_val) % 2 == 0) {
condA = true;
}
bool condB = false;
if (d - 1 >= 0 && abs(y2) <= d - 1) {
condB = true;
}
if (!condA && !condB) {
valid = false;
break;
}
}
cout << (valid ? "Yes" : "No") << '\n';
}
return 0;
}