#codethanksfestival14qualbe. [code_thanks_festival_14_qualb_e]マスゲーム

[code_thanks_festival_14_qualb_e]マスゲーム

问题描述

有一个二维网格棋盘,纵向长度为 RR,横向长度为 CC。棋盘的最左上角格子坐标为 (1,1)(1,1),最右下角格子坐标为 (R,C)(R,C)

在这个棋盘上进行以下操作 NN 次:

  • 将一个长方形区域内的所有格子涂黑。具体地,给定 r,c,h,wr,c,h,w,表示起始左上角格子的坐标为 (r,c)(r,c),涂黑一个矩形区域,该区域包含高度为 hh 的列和宽度为 ww 的行,共涂黑 h×wh \times w 个格子。

你喜欢黑色,现在你在棋盘上某个位置,希望能够沿着黑格子移动到另一个位置。你可以自由地向上下左右四个方向移动一步,但不能移出棋盘。

给定起点格子的坐标 (rs,cs)(r_s,c_s),终点格子的坐标 (rg,cg)(r_g,c_g),以及若干次操作,判断能否从起点格子移动到终点格子,且移动过程中只经过黑格子。如果可以,输出 YES,否则输出 NO


输入

输入以以下格式从标准输入中给出。

RR CC rsr_s csc_s rgr_g cgc_g NN r1r_1 c1c_1 h1h_1 w1w_1 r2r_2 c2c_2 h2h_2 w2w_2rNr_N cNc_N hNh_N wNw_N

  • 第一行包含两个整数,分别表示棋盘的纵向长度和横向长度,用空格分隔。保证 1R,C481 \leq R, C \leq 48
  • 第二行包含两个整数,表示起点格子的坐标 (rs,cs)(r_s,c_s),用空格分隔。保证 1rsR1 \leq r_s \leq R1csC1 \leq c_s \leq C
  • 第三行包含两个整数,表示终点格子的坐标 (rg,cg)(r_g,c_g),用空格分隔。保证 1rgR1 \leq r_g \leq R1cgC1 \leq c_g \leq C
  • 第四行包含一个整数 NN,表示操作的次数。保证 1N10001 \leq N \leq 1000
  • 接下来的 NN 行每行包含四个整数,分别表示一个长方形区域的 r,c,h,wr,c,h,w。每行的四个整数之间用空格分隔。保证 1riR1 \leq r_i \leq R1ciC1 \leq c_i \leq C1ri+hi1R1 \leq r_i+h_i-1 \leq R1ci+wi1C1 \leq c_i+w_i-1 \leq C
  • 起点格子和终点格子均不相同,即 (rs,cs)(rg,cg)(r_s,c_s) \neq (r_g,c_g)

输出

输出要求按照问题描述,输出 YES 或者 NO,并在末尾换行。


示例1


4 5
2 2
3 5
2
2 2 1 4
3 5 2 1

输出示例1


YES

将白格子用 . 表示,黑格子用 # 表示,操作后的棋盘如下:


.....
.####
....#
....#

起点用 S 表示,终点用 G 表示,位置关系如下:


.....
.S...
....G
.....

示例2


4 5
1 2
2 2
2
1 1 1 5
1 1 4 1

输出示例2


NO

示例3


4 5
1 1
1 3
3
1 1 1 1
1 2 1 1
1 3 1 1

输出示例3


YES

示例4


1 5
1 1
1 2
1
1 3 1 2

输出示例4


NO

示例5


1 5
1 3
1 2
1
1 3 1 2

输出示例5


NO

示例6


48 48
1 1
48 48
1
1 1 48 48

输出示例6


YES