#include <bits/stdc++.h>   using namespace std;   const int N = 1e6 + 6;   const long long M = 1e9 + 7;   const double eps = 1e-7;   int a[N];   int Int() {     int x;     scanf( %d , &x);     return x;   }   long long Lnt() {     long long x;     scanf( %I64d , &x);     return x;   }   long long Bigmod(long long A, long long B, long long C) {     if (B == 0LL) return 1LL;     long long x = Bigmod(A, B / 2LL, C);     x = (x * x) % C;     if (B % 2 == 1) x = (x * A) % C;     return x;   }   struct mar {     int i, j, c, d;   } cr[N];   bool cmp(mar a, mar b) {     if (a.i == b.i) return a.j < b.j;     return a.i < b.i;   }   bool Cmp(int a, int b) { return a > b; }   void print(int n) { printf( %d n , n); }   void Print(long long n) { printf( %I64d n , n); }   void debug(int n) { printf( %d  , n); }   int main() {     int x1 = Int(), x2 = Int(), x3 = Int(), x4 = Int(), x5 = Int(), x6 = Int();     int c = x3 + x5;     int d = max(x4, x6);     if (x1 > x2) swap(x1, x2);     if ((x1 >= c && x2 >= d) or (x2 >= c && x1 >= d)) return puts( YES ), 0;     c = x3 + x6;     d = max(x4, x5);     if ((x1 >= c && x2 >= d) or (x1 >= d and x2 >= c)) return puts( YES ), 0;     c = x4 + x5;     d = max(x3, x6);     if ((x1 >= c && x2 >= d) or (x1 >= d and x2 >= c)) return puts( YES ), 0;     c = x4 + x6;     d = max(x3, x5);     if ((x1 >= c && x2 >= d) or (x1 >= d and x2 >= c)) return puts( YES ), 0;     return puts( NO );   }   