#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const long long maxN = 1e9;
const long long INF = 1e18;
struct Point {
  int x, y;
};
struct Rect {
  Point p1, p2;
};
bool isIntersect(Rect a, Rect b) {
  if ((min(a.p2.x, b.p2.x) < max(a.p1.x, b.p1.x)) ||
      (min(a.p2.y, b.p2.y) < max(a.p1.y, b.p1.y)))
    return false;
  else
    return true;
}
bool isInside(Rect w, Rect d) {
  if (w.p1.x >= d.p1.x && w.p2.x <= d.p2.x && w.p1.y >= d.p1.y &&
      w.p2.y <= d.p2.y)
    return true;
  else
    return false;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  Rect w, d1, d2;
  cin >> w.p1.x >> w.p1.y >> w.p2.x >> w.p2.y;
  cin >> d1.p1.x >> d1.p1.y >> d1.p2.x >> d1.p2.y;
  cin >> d2.p1.x >> d2.p1.y >> d2.p2.x >> d2.p2.y;
  bool flag = true;
  if (isInside(w, d1) || isInside(w, d2)) flag = false;
  if (isIntersect(d1, d2)) {
    Rect temp;
    temp.p1.x = min(d1.p1.x, d2.p1.x);
    temp.p1.y = max(d1.p1.y, d2.p1.y);
    temp.p2.x = max(d1.p2.x, d2.p2.x);
    temp.p2.y = min(d1.p2.y, d2.p2.y);
    if (isInside(w, temp)) flag = false;
    temp.p1.x = max(d1.p1.x, d2.p1.x);
    temp.p1.y = min(d1.p1.y, d2.p1.y);
    temp.p2.x = min(d1.p2.x, d2.p2.x);
    temp.p2.y = max(d1.p2.y, d2.p2.y);
    if (isInside(w, temp)) flag = false;
  }
  if (flag)
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
