#include <bits/stdc++.h>
using namespace std;
struct Node {
  int x1, y1;
  int x2, y2;
} N[4];
int main(void) {
  for (int i = 1; i <= 3; i++)
    scanf("%d%d%d%d", &N[i].x1, &N[i].y1, &N[i].x2, &N[i].y2);
  if (N[1].x1 >= N[2].x1 && N[1].y1 >= N[2].y1 && N[1].x2 <= N[2].x2 &&
      N[1].y2 <= N[2].y2) {
    cout << "NO" << endl;
    return 0;
  }
  if (N[1].x1 >= N[3].x1 && N[1].y1 >= N[3].y1 && N[1].x2 <= N[3].x2 &&
      N[1].y2 <= N[3].y2) {
    cout << "NO" << endl;
    return 0;
  }
  if (N[2].x2 + N[2].y2 < N[3].x2 + N[3].y2) swap(N[2], N[3]);
  if (N[2].x1 > N[3].x2 || N[2].y1 > N[3].y2) {
    cout << "YES" << endl;
    return 0;
  }
  if ((N[1].x1 < N[2].x1 || N[1].y1 < N[2].y1) &&
      (N[1].x1 < N[3].x1 || N[1].y1 < N[3].y1)) {
    cout << "YES" << endl;
    return 0;
  }
  if ((N[1].x2 > N[2].x2 || N[1].y2 > N[2].y2) &&
      (N[1].x2 > N[3].x2 || N[1].y2 > N[3].y2)) {
    cout << "YES" << endl;
    return 0;
  }
  if ((N[1].x1 < N[2].x1 || N[1].y2 > N[2].y2) &&
      (N[1].x1 < N[3].x1 || N[1].y2 > N[3].y2)) {
    cout << "YES" << endl;
    return 0;
  }
  if ((N[1].x2 > N[2].x2 || N[1].y1 < N[2].y1) &&
      (N[1].x2 > N[3].x2 || N[1].y1 < N[3].y1)) {
    cout << "YES" << endl;
    return 0;
  }
  cout << "NO" << endl;
  return 0;
}
