#include <stdio.h>
#include <stdlib.h>

int main(void) 
{
	int n, m, hMin, hMax;
	scanf("%d %d %d %d", &n, &m, &hMin, &hMax);
	
	int *h = malloc(n * sizeof(int));
	int *s = malloc(m * sizeof(int));
	
	int i, j;
	
	for (i = 0; i < n; i++) {
		scanf("%d", &h[i]);	
	}
	for (i = 0; i < m; i++) {
		scanf("%d", &s[i]);
	}
	for (i = 0; i < n - 1; i++) {
		int min = h[i];
		for( j = i + 1; j < n; j++) {	
			if (h[j] < min) {
				min = h[j];
				h[j] = h[i];
				h[i] = min;
			}	
		}
	}
	for (i = 0; i < m - 1; i++) {
		int min = s[i];
		for( j = i + 1; j < m; j++) {	
			if (s[j] < min) {
				min = s[j];
				s[j] = s[i];
				s[i] = min;
			}	
		}
	}
	for (i = 0; i < n; i++) {
		if (h[i] < hMin) {	
			j = 0;
			while (h[i] + s[j] < hMin && j < m) {
				j++;
			}
			if (h[i] + s[j] > hMax) {
				printf("No\n");
				return 0;
			}
			if (j == m && (h[i] + s[j] < hMin)) {
				printf("No\n");
				return 0;
			}
			s[j] = 0;
		}
		if (h[i] >= hMin && h[i] <= hMax) {
			continue;
		}
		if (h[i] > hMax) {
			printf("No\n");
			return 0;
		}
	}
	printf("Yes\n");
	return 0;
}