#include<bits/stdc++.h>
using namespace std;
const int N=405;
int a,b,c,d,sd[N],n,h,Map[N][N],vis[N],ans=1,Flag;
void dfs(int x){
	if (!vis[x]||!ans)return;
	vis[x]=0;
	if (x>h&&sd[x]<0)ans=0;
	if (x<=h&&sd[x]>0)ans=0;
	if (sd[x])Flag=1;
	for (int i=1;i<=h*2;i++)
		if (Map[x][i])dfs(i);
}
int main(){
	scanf("%d%d",&n,&h);
	for (int i=1;i<=n;i++){
		scanf("%d%d%d%d",&a,&b,&c,&d);
		a=c?-c+h+1:a+h;b=d?d+h:-b+h+1;
		sd[a]++;sd[b]--;
		Map[a][b]=Map[b][a]=vis[a]=vis[b]=1;
	}
	for (int i=1;i<=h*2&&ans;i++)
		if (vis[i]){
			Flag=0;dfs(i);
			if (!Flag)ans=0;
		}
	if (ans)puts("YES");
	else puts("NO");
}
