#include<set>
#include<map>
#include<deque>
#include<queue>
#include<stack>
#include<cmath>
#include<ctime>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<climits>
#include<complex>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;

const int maxn = 410000;

int n,m=800;

int fa[maxn];
int findfa(const int x){return fa[x]==x?x:fa[x]=findfa(fa[x]);}

int d[maxn],v[maxn],ok[maxn];

int main()
{
    scanf("%d%*d",&n);
    for(int i=1;i<m;i++) fa[i]=i;
    for(int i=1;i<=n;i++)
    {
        int a,b,c,D,l,r; scanf("%d%d%d%d",&a,&b,&c,&D);
        l=!c?a:-c;
        r=!D?-b:D;
        l+=400,r+=400;
        d[l]++,d[r]--; v[l]=v[r]=1;
        fa[findfa(l)]=findfa(r);
    }
    for(int i=1;i<=400;i++) if(d[i]>0) return puts("NO"),0;
    for(int i=400;i<m;i++)  if(d[i]<0) return puts("NO"),0;

    for(int i=1;i<m;i++) if(d[i]) ok[findfa(i)]=1;

    for(int i=1;i<m;i++) if(i==findfa(i)&&v[i]&&!ok[i]) 
        return puts("NO"),0;
    puts("YES");

    return 0;
}