#include <bits/stdc++.h>
using namespace std;
const int maxn = 4e5 + 5;
const int MOD = 1e9 + 7;
int x1, x2, x3, x4, x5, x6;
int y7, y2, y3, y4, y5, y6;
struct rectangle {
  pair<int, int> lf_dn, rg_up;
  void clear() {
    lf_dn = {0, 0};
    rg_up = {0, 0};
  }
  rectangle intersect(rectangle rec) {
    int lf, rg, up, dn;
    pair<int, int> a = this->lf_dn, b = this->rg_up;
    pair<int, int> c = rec.lf_dn, d = rec.rg_up;
    lf = max(min(a.first, b.first), min(c.first, d.first));
    rg = min(max(a.first, b.first), max(c.first, d.first));
    up = min(max(a.second, b.second), max(c.second, d.second));
    dn = max(min(a.second, b.second), min(c.second, d.second));
    if (rg <= lf || up <= dn) return {{0, 0}, {0, 0}};
    return {{lf, dn}, {rg, up}};
  }
  long long area() {
    pair<int, int> a = this->lf_dn, b = this->rg_up;
    return 1ll * abs(a.first - b.first) * abs(a.second - b.second);
  }
  rectangle();
  rectangle(pair<int, int> a, pair<int, int> b) {
    this->lf_dn = a;
    this->rg_up = b;
  }
};
int main() {
  scanf("%d %d %d %d", &x1, &y7, &x2, &y2);
  scanf("%d %d %d %d", &x3, &y3, &x4, &y4);
  scanf("%d %d %d %d", &x5, &y5, &x6, &y6);
  rectangle white = rectangle({x1, y7}, {x2, y2});
  rectangle black1 = rectangle({x3, y3}, {x4, y4});
  rectangle black2 = rectangle({x5, y5}, {x6, y6});
  rectangle insect1 = white.intersect(black1);
  rectangle insect2 = white.intersect(black2);
  rectangle insect3 = insect1.intersect(insect2);
  long long res = insect1.area() + insect2.area() - insect3.area();
  if (res < white.area()) {
    puts("YES");
  } else {
    puts("NO");
  }
  return 0;
}
