#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
const int inf = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const double eps = 1e-4;
void debug() { cerr << '\n'; }
template <typename T, typename... Ts>
void debug(T x, Ts... y) {
  cerr << "\033[31m" << x << "\033[0m";
  if (sizeof...(y) > 0) cerr << ' ';
  debug(y...);
}
template <typename T>
void debug(const T &a, int l, int r, char c) {
  for (int i = l; i <= r; ++i)
    cerr << "\033[31m" << a[i] << "\033[0m" << (i == r ? '\n' : c);
}
template <typename T>
void debug(vector<T> a) {
  for (int i = 0; i < (int)a.size(); ++i)
    cerr << "\033[31m" << a[i] << "\033[31m"
         << " \n"[i == ((int)a.size() - 1)];
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long qpow(long long x, long long y) {
  long long ans = 1;
  for (; y > 0; y >>= 1) {
    if (y & 1) ans *= x;
    x *= x;
  }
  return ans;
}
long long qpow(long long x, long long y, int MOD) {
  long long ans = 1;
  for (; y > 0; y >>= 1) {
    if (y & 1) ans = ans * x % MOD;
    x = x * x % MOD;
  }
  return ans;
}
void exgcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1;
    y = 0;
    return;
  }
  exgcd(b, a % b, x, y);
  long long X = x;
  x = y;
  y = X - a / b * y;
}
long long inv(long long x, int mod = MOD) { return qpow(x, mod - 2, mod); }
long long m_m(long long a, int mod = MOD) { return (a % mod + mod) % mod; }
pair<pair<int, int>, pair<int, int> > getin(pair<int, int> p1,
                                            pair<int, int> p2,
                                            pair<int, int> p3,
                                            pair<int, int> p4) {
  int lx = max(min(p1.first, p2.first), min(p3.first, p4.first));
  int ly = max(min(p1.second, p2.second), min(p3.second, p4.second));
  int rx = min(max(p1.first, p2.first), max(p3.first, p4.first));
  int ry = min(max(p1.second, p2.second), max(p3.second, p4.second));
  if (rx <= lx || ry <= ly) return make_pair(make_pair(0, 0), make_pair(0, 0));
  return make_pair(make_pair(lx, ly), make_pair(rx, ry));
}
long long S(pair<pair<int, int>, pair<int, int> > p) {
  return 1ll * abs(p.first.first - p.second.first) *
         abs(p.first.second - p.second.second);
}
signed main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  vector<pair<int, int> > p(6);
  for (int i = (0); i < (6); ++i) cin >> p[i].first >> p[i].second;
  pair<pair<int, int>, pair<int, int> > wb_1 = getin(p[0], p[1], p[2], p[3]);
  pair<pair<int, int>, pair<int, int> > wb_2 = getin(p[0], p[1], p[4], p[5]);
  pair<pair<int, int>, pair<int, int> > bb =
      getin(wb_1.first, wb_1.second, wb_2.first, wb_2.second);
  if (S(make_pair(p[0], p[1])) > S(wb_1) + S(wb_2) - S(bb))
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
