#agc017e. [agc017_e]Jigsaw

[agc017_e]Jigsaw

题目描述

我们有 NN 个不规则的拼图块。每个拼图块由三个宽度为 11、高度各异的矩形部分组成。具体而言:

  • ii 块拼图由高度为 HH 的一个部分组成,其左侧连接了高度为 AiA_i 的另一个部分,右侧连接了高度为 BiB_i 的另一个部分,如下图所示。这里,左侧和右侧部分的底边相对于中心部分的底边分别位于离上下边界 CiC_iDiD_i 个单位长度处。

Snuke 正在将这些拼图块放在一张边长为 1010010^{100} 的正方形桌子上。在此过程中,必须满足以下条件:

  • 所有拼图块都必须放在桌子上。
  • 每个拼图块中心部分的底边必须与桌子的前面边界接触。
  • 每个拼图块非中心部分的底边必须要么接触桌子的前面边界,要么接触其他拼图块的某个部分的上面边。
  • 拼图块不能旋转或翻转。

确定是否可能进行这样的排列。

约束条件

  • 1N1000001 \leq N \leq 100000
  • 1H2001 \leq H \leq 200
  • 1AiH1 \leq A_i \leq H
  • 1BiH1 \leq B_i \leq H
  • 0CiHAi0 \leq C_i \leq H - A_i
  • 0DiHBi0 \leq D_i \leq H - B_i
  • 输入的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN HH A1A_1 B1B_1 C1C_1 D1D_1 A2A_2 B2B_2 C2C_2 D2D_2 : ANA_N BNB_N CNC_N DND_N

输出

如果可以在满足条件的情况下排列这些拼图块,则输出 YES;如果不可能,则输出 NO


示例输入 1

3 4
1 1 0 0
2 2 0 1
3 3 1 0

示例输出 1

YES

下图显示了一种可能的排列方式。


示例输入 2

4 2
1 1 0 1
1 1 0 1
1 1 0 1
1 1 0 1

示例输出 2

NO

示例输入 3

10 4
1 1 0 3
2 3 2 0
1 2 3 0
2 1 0 0
3 2 0 2
1 1 3 0
3 2 0 0
1 3 2 0
1 1 1 3
2 3 0 0

示例输出 3

YES