#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> shoes,gf;
int main()
{
    int n,m,hmin,hmax,var,ok=0;
    cin>>n>>m>>hmin>>hmax;
    for(int i=1;i<=n;i++)
    {
        cin>>var;
        gf.push_back(var);
    }
    for(int i=1;i<=m;i++)
    {
        cin>>var;
        shoes.push_back(var);
    }
    sort(gf.begin(),gf.end());
    sort(shoes.begin(),shoes.end());
    if(gf.size()>shoes.size())
    {
        for(int i=shoes.size();i<gf.size();i++)
            shoes.push_back(0);
    }
    for(int i=0;i<gf.size() && ok==0;i++)
        {
            if(shoes[i]+gf[i]>hmax && shoes[i]+gf[i]<hmin) ok=1;
        }
        if(ok==1) cout<<"No";
        else cout<<"Yes";
    return 0;
}