#include <iostream>
using namespace std;
bool inExist(float p1[2][2], float p2[2][2]){
	float p[4][2];
	p[0][0] = p[3][0] = p2[0][0];
	p[1][0] = p[2][0] = p2[1][0];
	p[0][1] = p[1][1] = p2[0][1];
	p[2][1] = p[3][1] = p2[1][1];
	for(int i = 0 ;i < 4; i++){
		if( (p1[0][0] <= p[i][0] && p[i][0] <= p1[1][0]) 
			&& 
			(p1[0][1] <= p[i][1] && p[i][1] <= p1[1][1]) ){
			return true;
		}
	}
	return false;
}
bool solve(){
	float p[2][2][2];
	for(int i = 0; i < 2; i++){
		for(int j = 0; j < 2; j++){
			for(int k = 0; k < 2; k++){
				if(!(cin >> p[i][j][k])) return false;
			}
		}
	}
	cout << ((inExist(p[0], p[1])||inExist(p[1], p[0]))?"YES":"NO") << endl;
	return true;
}
int main(){
	while(solve()){

	}

	return 0;
}