#include <string>
#include <queue>
#include <stack>
#include <vector>
#include <sstream>
#include <algorithm>
#include <deque>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <list>
#include <cstdio>
#include <iostream>
#include <cmath>
#include <climits>
#include <bitset>
#include <functional>
#include <numeric>
#include <ctime>
#include <cassert>
#include <cstring>
#include <fstream>
#include <iomanip>

using namespace std;

#define FOR(i, a, b) for(int (i)=(a);(i)<(b);(i)++)
#define IFOR(i, a, b) for(int (i)=(a);(i)<=(b);(i)++)
#define RFOR(i, a, b) for(int (i)=(a);(i)>=(b);(i)--)
#define REP(i, n) FOR((i), 0, (n))

using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;

int main() {
    int h, w, n, m;
    cin >> h >> w >> n >> m;
    vector<int> a(n), b(n), c(m), d(m);
    vector<vector<int>> masu(h, vector<int>(w, 0));
    REP(i, n){
        cin >> a[i] >> b[i];
        a[i]--, b[i]--;
        masu[a[i]][b[i]] = 1;
    }
    REP(i, m){
        cin >> c[i] >> d[i];
        c[i]--, d[i]--;
        masu[c[i]][d[i]] = -1;
    }

    vector<vector<vector<bool>>> hikari(h, vector<vector<bool>>(w, vector<bool>(4, false)));
    REP(i, h){
        bool nowl = false;
        bool nowr = false;
        REP(j, w){
            // from left
            if(masu[i][j] == 1) nowl = true;
            else if(masu[i][j] == -1) nowl = false;
            hikari[i][j][0] = nowl;
            // from right
            if(masu[i][w-j-1] == 1) nowr = true;
            else if(masu[i][w-j-1] == -1) nowr = false;
            hikari[i][w-j-1][1] = nowr;
        }
    }
    REP(j, w){
        bool nowt = false;
        bool nowb = false;
        REP(i, h){
            // from top
            if(masu[i][j] == 1) nowt = true;
            else if(masu[i][j] == -1) nowt = false;
            hikari[i][j][2] = nowt;
            // from bottom
            if(masu[h-i-1][j] == 1) nowb = true;
            else if(masu[h-i-1][j] == -1) nowb = false;
            hikari[h-i-1][j][3] = nowb;
        }
    }

    int cnt = 0;
    REP(i, h)
        REP(j, w){
            if(hikari[i][j][0] || hikari[i][j][1] || hikari[i][j][2] || hikari[i][j][3])
                cnt++;
        }

    cout << cnt << endl;
    return 0;
}
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
long double  n ,  m , cnt, ans , sum;
ll x , y , z;
ll a , b , c;
string s , s1;
char ch;
map<char , int>mp;
int main(){
    cin >> n >> a >> b >> m;
    if( m / n >= a and m / n <= b )
        cout << "No";
    else
        cout << "Yes";
}
