/*
TASK: tent
LANG: C++
*/
#include <stdio.h>
#include <iostream>

using namespace std;

int tree[1024][1024];
int w, h, n, s;
int x, y;

void update(int x, int y)
{
    while(x <= w + 1)
    {
        int yy = y;
        while(yy <= h + 1)
        {
            tree[x][yy] ++;
            yy += (yy & -yy);
        }
        x += (x & -x);
    }
}

int query(int x, int y)
{
    int ret = 0;
    while(x)
    {
        int yy = y;
        while(yy)
        {
            ret += tree[x][yy];
            yy -= (yy & -yy);
        }
        x -= (x & -x);
    }
    return ret;
}

void init()
{
    scanf("%d %d %d",&w,&h,&s);
    scanf("%d",&n);
    for(int i = 0; i < n; i ++)
    {
        scanf("%d %d",&x,&y);
        x ++; y ++;
        update(x, y);
    }
}

void solve()
{
    if(s == 1)
    {
        printf("YES\n");
        return;
    }
    for(int i = s + 1; i <= w + 1; i ++)
        for(int j = s + 1; j <= h + 1; j ++)
        {
            int x1 = i - 1, y1 = j - 1;
            int x2 = i - s + 1, y2 = j - s + 1;

            if(query(x1, y1) - query(x1, y2 - 1) - query(x2 - 1, y1) + query(x2 - 1, y2 - 1) == 0)
            {
                printf("YES\n");
                return;
            }
        }
    printf("NO\n");
}

int main()
{
    init();
    solve();

    return 0;
}
