#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=500;
int f[N],t[N],p[N],du[N];
int get(int x)
{
	if (f[x]==x) return x;
	return f[x]=get(f[x]);
}
int main()
{
	int n,h;
	scanf("%d%d",&n,&h);
	for (int i=1;i<=400;i++) f[i]=i;
	for (int i=1;i<=n;i++)
	{
		int a,b,c,d;
		scanf("%d%d%d%d",&a,&b,&c,&d);
		int l=200,r=200;
		if (c) l=l-c;else l=l+a;
		if (d) r=r+d;else r=r-b;
		du[l]++;
		du[r]--;
		t[l]=t[r]=1;
		f[get(l)]=get(r);
	}
	for (int i=1;i<=200;i++) if (du[i]>0) 
	{
		puts("NO");
		return 0;
	}
	for (int i=201;i<=400;i++) if (du[i]<0)
	{
		puts("NO");
		return 0;
	}
	for (int i=1;i<=400;i++) 
	{
		if (du[i]) p[get(i)]=1;
		t[get(i)]=t[get(i)]|t[i];
	}
	for (int i=0;i<=400;i++) if (i==get(i)&&t[i]&&!p[i]) 
	{
		puts("NO");
		return 0;
	}
	 puts("YES");
	 return 0;
}