盒中取球
题号:NC214457
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有一天prophet在路上捡到了一个盒子。

如图,是一个长方体形状底面开口的透明半封闭容器。


在盒子内有一个小球,和若干木棍。

我们在盒子上画上两圈黄色的虚线,把盒子划分成三部分。

(同一圈四条虚线在同一个平面,且这个平面与顶面平行)

小球位于第一部分,木棍分布在第二部分。


以上是这个盒子的侧视图

小球的直径为d,盒子的宽略大于d,木棍垂直固定在盒子的两个面上,长度与盒子的宽相同。


以上是这个盒子的正视图

盒子的长为m+1,第二部分的高度为n+1。

盒子内有k个木棍(图中k=3)。

其中第i根木棍的位置可以用(x_i,y_i)表示。

x_i代表第i木棍与左边的面的距离。

y_i代表第i木棍与上面黄色虚线的距离。

现在,你可以通过旋转、晃动这个盒子来控制里面的球的运动。

也就是只通过重力来控制小球的运动。

现在prophet想知道能否将小球取出。

为了简化问题,我们假设木棍的体积无限小,也就是说如果木棍与木棍的间隙或者木棍与左右边界的间隙大于等于小球直径,小球即可通过。



输入描述:

第一行四个正整数n,m,k,d。

n,m即上述题目中的含义,k代表木棍的个数,d代表圆的直径。



接下来k行,每行两个正整数x_i,y_i

x_i代表第i木棍与左边的面的距离。

y_i代表第i木棍与上面黄色虚线的距离。

输入保证没有两根木棍位置相同

输出描述:

如果能将小球取出"YES",否则输出"NO"
示例1

输入

复制
3 3 3 2
2 1
1 3
3 3

输出

复制
YES
示例2

输入

复制
3 3 3 2
2 1
1 2
3 2

输出

复制
NO