#include<cstdio>
#include<algorithm>
#include<cmath>
#include<ctime>
using namespace std;
struct point
{
    int x;
    int y;
};
point data[3000];
int w,h,n,s;
int main()
{
    scanf("%d%d%d",&w,&h,&s);
    scanf("%d",&n);
    if(n>3000) {if(w*h>s*n)printf("YES\n");else printf("NO\n"); return 0;}
    data[0].x=0;
    data[0].y=0;
    for(int i=1;i<=n;i++)
        scanf("%d%d",&data[i].x,&data[i].y);
    for(int i=0;i<=n;i++)
    {
        int mx=-1;
        for(int j=0;j<=n;j++)
        if(j!=i)
        if(data[j].y>data[i].y)
        if(data[j].y<data[i].y+s)
        if(data[j].x>=data[i].x)
        {
            if(mx==-1) mx=j; else
            if(data[mx].x>data[j].x)
                mx=j;
        }
        int mn=-1;
        for(int j=0;j<=n;j++)
        if(j!=i)
        if(data[j].y>data[i].y)
        if(data[j].y<data[i].y+s)
        if(data[j].x<data[i].x)
        {
            if(mn==-1) mn=j; else
            if(data[mn].x<data[j].x)
                mn=j;
        }
        if(mn==-1) mn=0;else mn=data[mn].x;
        if(mx==-1) mx=w;else mx=data[mx].x;
        if(mx-mn>=s)  {printf("YES\n"); return 0;};
        mx=-1;
        for(int j=0;j<=n;j++)
        if(j!=i)
        if(data[j].x>data[i].x)
        if(data[j].x<data[i].x+s)
        if(data[j].y>=data[i].y)
        {
            if(mx==-1) mx=j; else
            if(data[mx].y>data[j].y)
                mx=j;
        }
        mn=-1;
        for(int j=0;j<=n;j++)
        if(j!=i)
        if(data[j].x>data[i].x)
        if(data[j].x<data[i].x+s)
        if(data[j].y<data[i].y)
        {
            if(mn==-1) mn=j; else
            if(data[mn].y<data[j].y)
                mn=j;
        }
        if(mn==-1) mn=0;else mn=data[mn].y;
        if(mx==-1) mx=h;else mx=data[mx].y;
        if(mx-mn>=s)  {printf("YES\n"); return 0;};


    }
    printf("NO\n");
}
