#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long QPow(long long a, long long b) {
  long long ans = 1;
  while (b > 0) {
    if (b & 1) ans = ans % mod * a % mod;
    a = a % mod * a % mod;
    b >>= 1;
  }
  return ans;
}
long long inf = (long long)1 << 60;
double eps = 1e-8;
long long fac[5002];
long long fac_1[5002];
long long inv[5002];
void getInv() {
  inv[1] = 1;
  for (int i = 2; i <= 5000; i++) inv[i] = (mod - mod / i) * inv[mod % i] % mod;
}
void init1() {
  fac[0] = 1;
  fac_1[0] = 1;
  fac_1[1] = 1;
  for (int i = 1; i <= 5000; i++)
    fac[i] = fac[i - 1] * i % mod, fac_1[i] = inv[i] * fac_1[i - 1] % mod;
}
long long C(int n, int m) {
  if (m < 0 || m > n) return 0;
  return fac[n] * fac_1[n - m] % mod * fac_1[m] % mod;
}
long long gcd(long long x, long long y) {
  if (x == 1 || y == 1)
    return 1;
  else {
    if (x == 0) return y;
    if (y == 0) return x;
    if (x % y == 0) return y;
    if (y % x == 0) return x;
    if (x > y)
      return gcd(x % y, y);
    else
      return gcd(x, y % x);
  }
}
int sign(long long x) {
  if (x == 0) return 0;
  if (x > 0) return 1;
  return -1;
}
long long toInt(string str) {
  long long ans = 0;
  for (int i = (str[0] == '-'); i < str.size(); i++) {
    ans *= 10;
    ans += str[i] - '0';
  }
  if (str[0] == '-') ans = -ans;
  return ans;
}
string toString(long long a) {
  if (a == 0) return "0";
  string temp = "";
  if (a < 0) temp.push_back('-');
  long long tp = a;
  while (tp) {
    temp.push_back('0' + tp % 10);
    tp /= 10;
  }
  string temp2 = temp;
  for (int ii = 0; ii < temp.size(); ii++) {
    temp[ii] = temp2[temp.size() - 1 - ii];
  }
  return temp;
}
const int maxn = 200005;
int arr[maxn];
int al[3];
int bo[3];
long long solve() {
  long long ans = min(al[0], bo[1]);
  ans += min(al[1], bo[2]);
  ans += min(al[2], bo[0]);
  return ans;
}
long long solve1() {
  long long ans = 0;
  for (int i = 0; i < 3; i++) {
    swap(al[i], bo[i]);
  }
  for (int i = 0; i < 3; i++) {
    int mn = min(al[i], bo[(i + 1) % 3]);
    al[i] -= mn;
    bo[(i + 1) % 3] -= mn;
    ans += mn;
  }
  for (int i = 0; i < 3; i++) ans += min(al[i], bo[i]);
  return ans;
}
int matr[2][2];
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  ifstream in("Text.txt");
  long long p, n, m, t, x;
  cin >> t;
  while (t--) {
    cin >> n >> m;
    int xcnt = 0;
    int ycnt = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < 2; j++)
        for (int k = 0; k < 2; k++) cin >> matr[j][k];
      if (matr[0][1] == matr[1][0]) xcnt++;
      if (matr[0][0] == matr[1][1]) ycnt++;
    }
    if (m % 2) {
      cout << "NO" << endl;
    } else {
      if (xcnt)
        cout << "YES" << endl;
      else
        cout << "NO" << endl;
    }
  }
  return 0;
}
