#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
using namespace std;
int x;
const double pi = acos(-1.0);
const int mod = 1000000007;
const int maxn = 2000010;
int t = 0;
int n;
bool cmp(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.second > b.second);
}
long long int b_p(long long int a, long long int n) {
  long long int ans = 1;
  while (n > 0) {
    if (n & 1) {
      ans = (ans * a) % mod;
    }
    a = (a * a) % mod;
    n >>= 1;
  }
  return ans;
}
int fac(int n) {
  int fa = 1;
  for (int i = 1; i < n + 1; i++) {
    fa *= i;
    fa %= mod;
  }
  return fa % mod;
}
int power(int x, int y) {
  float p = 1.00;
  int xx = (float)x;
  int i;
  if (y < 0) {
    y = -1 * y;
    xx = 1 / xx;
  }
  for (i = 1; i <= y; i++) {
    p = p * xx;
  }
  return p;
}
char utl(char a) { return a |= ' '; }
char ltu(char a) { return a &= '_'; }
bool lo(char a) {
  if (a >= 'a' && a <= 'z') return true;
  return false;
}
bool up(char a) {
  if (a >= 'A' && a <= 'Z') return false;
  return false;
}
void slove() {
  int n, m;
  cin >> n >> m;
  int a[2 * n][2];
  for (int i = 0; i < 2 * n; i++) {
    for (int j = 0; j < 2; j++) {
      cin >> a[i][j];
    }
  }
  if (m & 1)
    cout << "NO" << endl;
  else {
    int cnt = 0;
    bool x = false;
    for (int i = 0, j = 0; i < 2 * n; i += 2) {
      if (a[i][j + 1] == a[i + 1][j]) {
        if (a[i][j] == a[i + 1][j + 1]) {
          x = true;
          break;
        }
        cnt++;
      }
    }
    if (x)
      cout << "YES" << endl;
    else {
      if (cnt >= 1)
        cout << "YES" << endl;
      else
        cout << "NO" << endl;
    }
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  ;
  cin >> t;
  if (t == 0) {
    slove();
  } else {
    while (t--) {
      slove();
    }
  };
}
