The Duck songFor simplicity, we'll assume that there are only three types of grapes: green grapes, purple grapes and black grapes.Andrew, Dmitry and Michal are all grapes' lovers, however their preferences of grapes are different. To make all of them happy, the following should happen: Andrew, Dmitry and Michal should eat at least $$$x$$$, $$$y$$$ and $$$z$$$ grapes, respectively. Andrew has an extreme affinity for green grapes, thus he will eat green grapes and green grapes only. On the other hand, Dmitry is not a fan of black grapes — any types of grapes except black would do for him. In other words, Dmitry can eat green and purple grapes. Michal has a common taste — he enjoys grapes in general and will be pleased with any types of grapes, as long as the quantity is sufficient.Knowing that his friends are so fond of grapes, Aki decided to host a grape party with them. He has prepared a box with $$$a$$$ green grapes, $$$b$$$ purple grapes and $$$c$$$ black grapes.However, Aki isn't sure if the box he prepared contains enough grapes to make everyone happy. Can you please find out whether it's possible to distribute grapes so that everyone is happy or Aki has to buy some more grapes?It is not required to distribute all the grapes, so it's possible that some of them will remain unused.

The first line contains three integers $$$x$$$, $$$y$$$ and $$$z$$$ ($$$1 \le x, y, z \le 10^5$$$) — the number of grapes Andrew, Dmitry and Michal want to eat. The second line contains three integers $$$a$$$, $$$b$$$, $$$c$$$ ($$$1 \le a, b, c \le 10^5$$$) — the number of green, purple and black grapes in the box.

If there is a grape distribution that allows everyone to be happy, print "YES", otherwise print "NO".

NoteIn the first example, there is only one possible distribution:Andrew should take $$$1$$$ green grape, Dmitry should take $$$3$$$ remaining green grapes and $$$3$$$ purple grapes, and Michal will take $$$2$$$ out of $$$3$$$ available black grapes.In the second test, there is no possible distribution, since Andrew is not be able to eat enough green grapes. :(

var
	a, b, c, x, y, z: integer;

begin
	{$string_nullbased+}

	readln(x, y, z);
	readln(a, b, c);

	if (x > a) then writeln('NO')
	else if (y > a - x + b) then writeln ('NO')
	else if (z > a + b + c - y - x) then writeln ('NO')
	else writeln ('YES')

end.

var a,b,c,x,y,z: longint;

begin
  readln (x,y,z);
  readln (a,b,c);
  a:=a-x;
  if (a>=0) and ((a+b)>=y) and (a+b+c>=y+z) then writeln ('YES') else writeln ('NO');
end.

var x,y,z,a,b,c:longint;
BEGIN
readln(x,y,z);
readln(a,b,c);
//if x+y+z>a+b+c then begin writeln('NO');exit;end;
//fast NO
if x>a then begin writeln('NO');exit;end;
if y>a+b-x then begin writeln('NO');exit;end;
if z>a+b+c - (x+y) then begin writeln('NO');exit;end;
writeln('YES');
END.

var x,y,z,a,b,c:int64;
begin
read(x,y,z,a,b,c);
if (x<=a) and (y<=(a-x)+b) and (z<=(a+b+c)-x-y) then write('YES') else write('NO')
end.

var
  x, z, y, g, p, b, v, no: integer;
  s1: string;
  s2: string;

begin
  readln(x, y, z);
  readln(g, p, b);

  if g >= x then
    v := g - x
  else
    no := 1;

  if p+v >= y then
    v := p+v - y
  else
    no := 1;

  if b+v < z then no := 1;

  if no = 1 then
    writeln('NO')
  else
  writeln('YES');
end.

begin
  var a,b,c,x,y,z:integer;
  readln(x,y,z);
  readln(a,b,c);
  z:=z-c;
  if x<=a then
  begin
    a:=a-x;
  end
  else
  begin
    println('NO');
    exit();
  end;
  if y<=a+b then
  begin
    a:=a-y;
    b:=b+a;
  end
  else
  begin
     println('NO');
    exit();
  end;
  if z<=b then
    println('YES')
  else
    println('NO');
end.

Program VINOGRAD2;
var x,y,z,a,b,c:integer;
Begin
readln(x,y,z,a,b,c);
if (x<=a) and (y<=a+b-x) and (z<=a+b+c-x-y) then
writeln('Yes')
else
writeln('No');
End.

Program Vinograd;
var x,y,z,a,b,c,sum: longint;

Begin
readln(x,y,z,a,b,c);
if x<=a then
  begin
    a:= a-x;
    if y<=a+b then
      begin
        sum:=a+b-y;
          if z<= sum+c then
            writeln('Yes')
          else
              writeln('NO');
      end
    else
      begin
      writeln('NO');
      end;
  end
else
  begin
    writeln('NO');
  end;

End.

program one;
var
x,y,z,a,b,c:integer;
begin
read(x,y,z);
read(a,b,c);
if x<=a then
    begin
    a:=a-x;
    x:=0;
    end
    else
    begin
    writeln('NO');
    exit;
    end;
if y<=a then
    begin
    a:=a-y;
    y:=0;
    end
    else
    begin
    y:=y-a;
    a:=0;
    if y<=b then
        begin
        b:=b-y;
        y:=0;
        end
        else
        begin
        writeln('NO');
        exit;
        end;
    end;
if z<=a then
    begin
    writeln('YES');
    end
    else
    begin
    z:=z-a;
    a:=0;
    if z<=b then
        begin
        writeln('YES');
        end
        else
        begin
        z:=z-b;
        b:=0;
        if z<=c then
            begin
            writeln('YES');
            end
            else
            begin
            writeln('NO');
            exit;
            end;
        end;
    end;
end.

var x,y,z,a,b,c:integer;
begin
read(x,y,z,a,b,c);
if a<x then begin print('No');exit;end;dec(a,x);
if a+b<y then begin print('No');exit;end;
if ((a+b)-y)+c<z then print('No') else write('Yes');
end.

var z,x,y,a,b,c,d,f:real;
begin
readln (x,y,z);
readln (a,b,c);
if ((a-x)<0) then
begin
writeln ('NO');
end
else
begin
d:=a-x;
if (b+d)-y<0 then
begin
writeln ('NO');
end
else
begin
f:=b+d-y+c;
if ((f-z)<0) then
begin
writeln ('NO');
end
else
begin
writeln ('YES');
end;
end;
end;
end.

{$mode delphi}
var a,b,c,x,y,z,i:integer;

begin
  read(x,y,z,a,b,c);
  if a-x<0 then
    writeln('NO')
  else
  begin
    a:=a-x;
    if a+b-y<0 then
      writeln('NO')
    else
    begin
      i:=a+b-y;
      if i+c-z<0 then
        writeln('NO')
      else
        writeln('YES');
    end;
  end;
end.

var a,b,c,d,e,f,g,h:integer;
begin
read(a,b,c);
read(d,e,f);
if (d<a) then
write('NO')
else
begin
g:=d-a+e;
if (g<b) then
write('NO')
else
begin
h:=g-b+f;
if (h<c) then
write('NO')
else
write('YES');
end;end;end.

Var
    x, y, z, a, b, c: Int64;

Begin
    Read(x, y, z);
    Read(a, b, c);
    If x <= a then Begin
        a -= x;
        If a + b >= y then Begin
            If min(a, y) = a then Begin
                b -= y;
                b += a;
                a -= min(a, y);
            End
            Else
                a -= min(a, y);
            If a + b + c >= z then
                Write('YES')
            Else
                Write('NO')
        End
        Else Write('NO')
    End
    Else
        Write('NO')
End.

var x,y,z:integer;
    a,b,c:integer;

begin
x:=5;
y:=1;
z:=1;
a:=5;
b:=3;
c:=2;
  read(x,y,z);
  read(a,b,c);
  if a<x then write('No')
  else if (a-x+b)<y then write('No')
  else if (a+b-x-y)+c<z then write('No')
  else write('Yes');

end.

 var x, y, z: integer;
     a, b, c: integer;
     summ: integer;

 begin
   Readln(x, y, z);
   Readln(a, b, c);
   if a >= x then a -= x
   else
   begin
     Writeln('NO');
     exit;
   end;
   summ := b + a;
   if summ >= y then summ -= y
   else
   begin
     Writeln('NO');
     exit;
   end;
   summ += c;
   if summ >= z then
   begin
     summ -= z;
     Writeln('YES');
   end
   else
     Writeln('NO');
 end.

var a,b,c,y,x,z:integer;
begin
read(x,y,z,a,b,c);
readln;
if (x<=a)and(a-x+b>=y)and(a-x+b-y+c>=z)
then writeln('YES')
else writeln('NO');
end.

var x,y,z,a,b,c,tam:longint;
begin
        readln(x,y,z);
        readln(a,b,c);
        if x > a then writeln('NO')
        else
        begin
        dec(a,x);
        tam:=a+b;
        if y > tam then writeln('NO')
        else
        begin
        dec(tam,y);
        tam:=tam+c;
        if z > tam then writeln('NO')
        else writeln('YES')
        end;
        end;
        readln;
end.

Program Grapes;
uses math;
var a,b,c,x,y,z:longint;
Procedure Likegrapes;
begin   if (x>=a) and (x+y-a>=b) and (x+y+z-a-b>=c) then writeln('YES')
        else writeln('NO');
end;
begin   readln(a,b,c); readln(x,y,z);
        Likegrapes;
end.

var     x,y,z,a,b,c:longint;
        t1,t2:longint;
        k:boolean;
        d:array[1..1000] of longint;

{type    day=array[1..100000] of longint;

procedure sort(var a:day;l,r: longint);
var i,j,x,y: longint;
begin
        i:=l;
        j:=r;
        x:=a[(l+r) div 2];
        repeat
                while a[i]<x do inc(i);
                while x<a[j] do dec(j);
                if not(i>j) then
                begin
                        y:=a[i];
                        a[i]:=a[j];
                        a[j]:=y;
                        inc(i);
                        j:=j-1;
                end;
        until i>j;
        if l<j then sort(a,l,j);
        if i<r then sort(a,i,r);
end;}

begin
        readln(x,y,z);
        readln(a,b,c);

        k:=true;
        if a<x then k:=false else
        begin
                t1:=a-x;
                if t1+b<y then k:=false else
                begin
                        t2:=t1+b-y;
                        if t2+c<z then k:=false;
                end;
        end;

        if (k=true) then write('YES') else write('NO');
end.

var x, y, z, a, b, c :longint;

begin
   readln(x, y, z);
   readln(a, b, c);
   if a < x then begin
     writeln('NO');
     exit;
   end;
   dec(a, x);
   if a+b < y then begin
     writeln('NO');
     exit;
   end;
   if a+b+c-y < z then begin
     writeln('NO');
     exit;
   end;
   writeln('YES');
end.

Program Grapes;
uses math;
var a,b,c,x,y,z:longint;
Procedure Likegrapes;
begin   if (x>=a) and (x+y-a>=b) and (x+y+z-a-b>=c) then writeln('YES')
        else writeln('NO');
end;
begin   //assign(input,'grape.inp'); reset(input);
       // assign(output,'grape.out'); rewrite(output);
        readln(a,b,c); readln(x,y,z);
        Likegrapes;
        //close(input); close(output);
end.

VAr i,e,t,k,l,m,u:int64;
Begin
        //Assign(input,'Grapes.inp');reset(input);
        //Assign(output,'Grapes.out');rewrite(output);
        Readln(i,e,t);
        Readln(k,l,m);
        u:=k+l+m;
        If u<(i+e+t) then Write('NO') else
        Begin
                If t>m then u:=u-t else u:=k+l;
                If u<(i+e) then Write('NO') else
                Begin
                        If (e+t)>(k+l+m) then u:=k+l+m-e-t else u:=k;
                        If u<i then Write('NO') else Write('YES');
                End;
        End;
       // Close(input);Close(output);
End.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=59999 then writeln('AAA');111
if (a>=x) and(b+a>=y+x)and(a+b+c>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(200)=0 then writeln('AAA');
end.

var a,b,c,x,z,y,q:longint;
begin
 read(x,y,z,a,b,c);
 if a<x then write('NO') else begin
 b:=b+a-x;
 if b<y then write('NO') else begin
 c:=c+b-y;if c<z then write('NO') else write('YES');
 end;
 end;
end.

var
    x,y,z,a,b,c:longint;
begin
    readln(x,y,z);
    readln(a,b,c);
    if a>=x then dec(a,x) else begin writeln('NO');exit;end;
    if a>=y then dec(a,y)
    else if a+b>=y then begin dec(y,a);a:=0;dec(b,y);end
    else begin writeln('NO');exit;end;
    if a+b+c>=z then writeln('YES') else writeln('NO');
end.

Var x,y,z,a,b,c,sum:Longint;
Begin
    Readln(x,y,z); Readln(a,b,c);
    sum:=a+b+c;
    If x<=a then begin
        Dec(a,x);
        Dec(sum,x);
    End
    Else begin
        Writeln('NO');
        Halt;
    End;
    If y<=a+b then Dec(sum,y)
    Else begin
        Writeln('No');
        Halt;
    End;
    If z<=sum then writeln('YES')
    Else writeln('NO');
End.

program ProblemA;
var a,b,c,x,y,z:longint;
begin
        readln(x,y,z);
        readln(a,b,c);
        if a>=x then a:=a-x else
        begin
                write('NO');
                exit;
        end;

        b:=a+b;
        if b>=y then b:=b-y else
        begin
                write('NO');
                exit;
        end;
        c:=c+b;
        if c>=z then write('YES') else write('NO');
end.

 Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If ( (a>=x) and (b>=y) and (c>=z) ) then writeln('YES')
    else
      begin
            If (x>a)  then writeln('NO')
             else
               begin

                kq:=a-x;
                b:=b+kq;
                If (b<y) then writeln('NO') else
                  begin
                    c:=c+b-y;
                      If (c<z) then writeln('NO')
                        else writeln('YES');
                   end;
               end;
   end;

  Close(input);
  Close(output);
ENd.

var  a,b,c,x,y,z:integer;
begin
  read(x,y,z);
  read(a,b,c);
  if x>a
    then write('NO')
    else if (a-x)+b<y
      then write('NO')
      else if ((a-x)+b)-y +c<z
        then write('NO')
        else write('YES');
end.

var
 z,x,y,a,b,c,s:longint;
begin
readln(x,y,z);
readln(a,b,c);
if x>a then begin writeln('NO'); halt; end else
a:=a-x;
if a+b<y then begin writeln('NO'); halt; end else
s:=a+b-y;
if s+c<z then begin writeln('NO'); halt; end else
writeln('YES');
end.

var a,b,c,z,x,y,d:integer;

begin
read (x,y,z,a,b,c);
if (a-x<0) then begin write ('NO'); exit; end else begin a:=a-x; d:=a+b; end;
if (d-y<0) then begin write ('NO'); exit; end else  d:=d-y+c;
if (d-z<0) then write ('NO') else write ('YES');
end.

const fi='input.txt';
      fo='output.txt';
var x,y,z,green,purple,black:longint;
    check:boolean;

BEGIN
        //assign(input,fi); reset(input);
        //assign(output,fo); rewrite(output);

        readln(x,y,z);
        readln(green,purple,black);

        check:=true;
        if green<x then check:=false else green:=green-x;
        if green+purple<y then check:=false;
        if green+purple+black-y<z then check:=false;

        if check=false then write('NO') else write('YES');

        //close(input);
        //close(output);
END.

 var i,j,n,l,r,code:longint;
x,y,z:longint;
 a,b,c: longint;

begin

readln(x,y,z);
readln(a,b,c);
if (a<x) then writeln('NO')
else begin
    a:=a-x;
    b:=b+a;
    if (b<y) then writeln('NO')
    else begin
        b:=b-y;
        c:=c+b;
        if (c<z) then writeln('NO')
        else writeln('YES');
    end;
end;

end.

var
 d,n,p,i,i2,i4:longint;
 a,b,c,z,x,y:extended;
 s:string;
Begin

 readln(x,y,z);
 readln(a,b,c);

 if a<x then begin writeln('NO'); exit; end
 else a:=a-x;
 if a+b<y then begin writeln('NO'); exit; end
 else b:=a+b-y;
 if b+c<z then begin writeln('NO'); exit; end
 else c:=b+c-z;
 writeln('YES');

end.

var
x,y,z,a,b,c,sum:longint;
itog:boolean;
begin
readln(x,y,z);
readln(a,b,c);
if a-x>=0 then begin
               itog:=true;
               a:=a-x;
               if a+b-y>=0 then begin
                                sum:=a+b+c-y;
                                if sum-z<0 then itog:=false;
                                end
                           else itog:=false;
               end
          else itog:=false;
if itog then write('YES')
        else write('NO');
end.

var n,m,k,green,purple,black,sum:longint;
procedure die;
begin
        write('NO');
        halt;
end;

begin
        readln(n,m,k);
        read(green,purple,black);
        if green<n then die;
        green:=green-n;
        if green+purple<m then die;
        sum:=green+purple;
        sum:=sum-m;
        if sum+black<k then die;
        write('YES');
end.

var a,b,c,x,y,z:longint;
begin
   readln(x,y,z);
   readln(a,b,c);
   if a>=x then dec(a,x) else
      begin
         write('NO');
         exit;
      end;
   if a+b>=y then b:=b-y+a else
      begin
         write('NO');
         exit;
      end;
   if b+c>=z then write('YES') else write('NO');
   readln;
end.

program Grape;
var
        x, y, z: LongInt;
        a, b, c: LongInt;

begin
        ReadLn (x, y, z);
        ReadLn (a, b, c);

        a := a - x;

        if b > y then
                b := b - y
        else
                if b + a >= y then
                begin
                        y := y - b;
                        b := 0;
                        a := a - y
                end
                else
                begin
                        a := -1;
                end;

        if (a >= 0) and (b >= 0) and (a + b + c >= z) then
                WriteLn ('YES')
        else
                WriteLn ('NO');
end.

var a,b,c,i,x,y,z,d:integer;
begin
    //x-Андрей(Только зеленый)  y-Дмитрий(Не любит черный(Расист)) z-Михаил(ВСЕ)
    readln(x,y,z);
    //a-зленый b-фиолетовый c-черный
    readln(a,b,c);
    if (a - x >= 0) then
    begin
        a:= a-x;
        if (a + b - y >= 0) then
        begin
            d:= a + b - y;
            if (d + c - z >= 0) then
            begin
                d:= d + c - z;
                writeln('YES');
            end
            else writeln('NO');
        end
        else writeln('NO');
    end
    else writeln('NO');
end.

Var x , y , z , a , b , c : Longint;
Begin
Readln(x,y,z);
Readln(a,b,c);
If x > a then Writeln('NO') else
   Begin
   Dec(a,x);
   If a + b <  y then Writeln('NO') else
       Begin
       Inc(c,a+b-y);
       If c < z then Writeln('NO') else Writeln('YES');
       End;
   End;
End.

var
  x, y, z, a, b, c: integer;
  k: byte;

begin
  read(x, y, z, a, b, c);
  k := 0;
  if a < x then
    k := 1
  else
    a := a - x;
  if k <> 1 then
  begin
    if y > a then
    begin
      y := y - a;
      a := 0;
      if y > b then
        k := 1
      else
        b := b - y;
    end
    else
    if y = a then
      a := 0
    else
      a := a - y;
  end
  else
    k := 1;
  if k <> 1 then
    if a + b + c < z then
      k := 1;
  if k <> 1 then
    write('YES')
  else
    write('NO');
end.

var
  x, y, z, a, b, c, i: longint;
begin
  readln(x, y, z);
  read(a, b, c);
  if (a >= x) and ((a-x)+b >= y) and ((a-x)+(b-y)+c >= z) then write('YES') else write('NO');
end.

var a,b,r,z,f,c,s:longint;
begin
read(a,b,r);
read(z,f,c);
if a>z then begin writeln('NO'); halt; end;
z:=z-a;
if (z+f)<b then begin writeln('NO'); halt; end;
s:=c+(z+f)-b;
if s<r then writeln('NO') else writeln('YES');
end.

var
  a, b, c, x, y, z: integer;

begin
  read(x, y, z, a, b, c);
  a := a - x;
  if (a < 0) then begin
    writeln('NO');
    exit
  end;
  b := a + b - y;
  if (b < 0) then begin
    write('NO');
    exit
  end;
  c := b + c - z;
  if(c < 0) then begin
    write('NO');
    exit
  end;
  write('YES')
end.

var a,b,q,w,e,r,t,y,u,i,o,p,l,k,j,hg,f,d,s,z,x,c,v,n,m,g,ch,col:integer;
begin
read(a,d,m);
read(z,f,ch);
if z>=a then l:=l+1;
z:=z-a;
col:=z+f;
if col>=d then l:=l+1;
col:=col-d;
ch:=ch+col;
if ch>=m then l:=l+1;
if l=3 then write('Yes')
 else write('No');
 end.

var
       x,y,z,a,b,c: integer;
begin
readln(x,y,z);
readln(a,b,c);
if(a>=x)then a:=a-x else begin write('no'); exit; end;
if a+b>=y then begin
    if y>=a then begin
        y:=y-a; a:=0; b:=b-y; end
    else a:=a-y; end  else begin write('no'); exit; end;
if a+b+c>=z then write('yes') else write('no');
end.

var x,y,z:integer;
    ze,ph,ch:integer;
Begin
 readln(x,y,z);
 readln(ze,ph,ch);
 if (ze < x) then begin
   writeln('NO');
   Exit;
 end;
 if (ze-x+ph < y) then begin
   writeln('NO');
   Exit;
 end;
 if (ze-x + ch-y + ph < z) then begin
   writeln('NO');
   Exit;
   end;
 writeln('YES');
end.

var x,y,z,i,s:integer;
    a:array [0..2] of integer;

begin
    readln(x,y,z);
    readln(a[0],a[1],a[2]);

    s:=a[0];

    if(x <= s) then
    begin
        s:=s-x;
        s:=s+a[1];
        if(y <= s) then
        begin
            s:=s-y;
            s:=s+a[2];
            if(z <= s) then writeln('YES')
            else writeln('NO');
        end
        else writeln('NO');
    end
    else writeln('NO');
end.

var x,y,z,a,b,c:longint;
begin
read(x,y,z,a,b,c);
if x>a then begin write('NO');halt;end;
b:=b+a-x;
if y>b then begin write('NO');halt;end;
c:=c+b-y;
if z>c then begin write('NO');halt;end;
write('YES');
end.

      const eps=0.0000000001;  besk1=200000008;  nnn=4600000;
            besk=8000000000000000000;
              modul=1000000007{998244353} ;

   label 22,1,2,3,4,33;
    type    real=extended;   double=extended;
    mas=array [-300000..nnn] of int64;   point=record x,y,z:real;end;
    zap=record p1,p2,p3,p4 :int64;end; zap1=^zap;
    mass=array[-10000..nnn] of longint;mass1=^mass;
    var centr,razm,kollad,leftx,rightx,lefty,righty,num,dirx,diry,oldii,xx,yy,obr,koludal,maxdl,mindl,tmin,aaa,bbb,ccc,kolst,kollek,aa,bb,t1,t2,kolx,koly,ans,ans1,ans2,dl,posleft,posright,n,xxx,yyy,dx,dy,m,w,h,jjj,l,r,cc,sum,mnog,nn,t3,t4,t5,t6,posmax,tmax,kold,kk,j2,ttt,ppp,kol,pmin,pmax,limit,posi,posj,diam,oldt,ot1,time,pos,ll,posx,posy,dloch,newdl,oldn,oldm,ost,ot,p1,p2,p3,p4,znamzz,kolperiod,znam,tperiod,start,finish,kol1,kol2,lavel,p0,jj,ii,ogr,q,p,pp,tt,oldtt,qq,qq1,qq2,q1,q2,imax,t,nm,smin,cen:int64;
   k,i2,i3,step2,k1,k2,pp0,mask,i1,j1,step1, step, i,j:longint;
   kolizm,minzn,zz,predok,xold,yold,x1,x0,d,b,a,zsum,y,x,z:array[-200000..1535002] of int64;

   gr:array[-1..2000,-1..2000] of boolean;

    prob1,prob2,prob3,pr1new,pr2new,pr3new,pr1,pr2,pr3:zap;
    iii,oldpos,finot,vv,znak:int64;
    aold:mas;  anss:zap;
    ss1,ss2:string;
    newstr,str,sss:array[-1000..20000] of string;
    lll,rrr,v,dist,alpha,phi:extended;
    zzz,ddnew,koef,polex,ddsum,dd:array[-1..4,-1..1300000] of int64;
    ppos,mma,ma:array[-1000..2000005,-1..15] of int64;
    xleft,xright,xplus,xminus,px,py,xc,yc,xxc,yyc:extended;
    del:array[-1..100001,-1..20] of longint;
    z0,y1,z1,z2,kolnul,fact,next,prev,s,name,dnew, voltay,c,day:mas;
    zzzz:array[0..125000000] of byte;
    aaaa,bbbb,x2:extended;
    delit:array[0..100000,0..20] of longint;
    pole:array[-10..2002,-10..2005] of char;
    matr,ppole,ddl,ddr,dd3,dd4:array[-10..2000,-10..2200] of extended;
    ddnnew:array[-1..12,-1..12,0..200,0..3] of int64;
   newzan,marked,zanx,zany:array[-1000000..2000000] of boolean;
    ssold,sss1,sss2:string;
    def,stepen,koled,och,newoch,place,newnabor,stoim,nabor:array[-10..500005] of int64;
     zanleft,zanright,zan,fl:array[-100000..10000000] of boolean;
     dost:array[-1..210,-1..210,0..3,0..3] of int64;
    ss:string;ch,ch1,ch2:char;
    pr,hesh,numright,dr: array [-10..206,-1..16] of int64;
    s3,s2,s1:array[-100..500000] of string;

    grr :array [-10..2010,-10..2010] of extended;
    maxpr:array[0..nnn] of string;
     tx,ty,vel,ott,v0,v1,s0,t0:int64;
     zv:point;
     left,right,ugol,rot,temp,sumtemp,vol,newx,newy:array[-1000..400000] of int64;
     mash,sqx,sqy,ottt:extended;
     xxxx,yyyy,yot:double;
       flag2,flag,flag1:boolean;

  function max(a,b:int64):int64;
begin max:=a; if b>a then max:=b;   end;

  function min(a,b:int64):int64;
begin min:=a; if b<a then min:=b;   end;

procedure udal(p:longint);
begin  next[prev[p]]:=next[p]; prev[next[p]]:=prev[p]; end;

      function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

     function summ(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p2+xx.p2*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=t1 div tt mod modul;
    t2:=t2 div tt mod modul;
    ott.p1:=t1; ott.p2:=t2;

   summ:=@ott;
 end;

     function prod(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=(t1 div tt) mod modul;
    t2:=(t2 div tt) mod modul;
    ott.p1:=t1; ott.p2:=t2;

   prod:=@ott;
 end;

    function al(x,y:real):real; var t0,t1,p,s0,s1:real;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p{/pi*180};
 end;

function degg(a,k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=degg(a,k-1)*a mod modul else
   begin  p:=degg(a,k shr 1); degg:=p*p mod modul;   end;

end;

function prost(tt:int64):boolean;
var aa:extended; i,p,t:longint;  fl:boolean;
 begin
   fl:=true;
   aa:=tt;
   aa:=sqrt(aa);
   t:=round(aa);
   for i:=2 to t do if tt mod i=0 then fl:=false;

   prost:=fl;
 end;

function arcsin(pp:extended):extended;
var tt:extended;
begin
   if (abs(pp)<=1+eps)and (abs(pp)>=1-eps)
   then if pp>0 then arcsin:=pi/2 else arcsin:=-pi/2;
   tt:=1-pp*pp;
   if abs(tt)>=0 then
     begin
        arcsin:=arctan(pp/sqrt(tt));

     end;

end;

function gl(ch:char):boolean;
begin
 if (ch='o')or (ch='a')or(ch='e')or(ch='u')or(ch='i') then gl:=true else gl:=false;

end;

function zaprmin(left,right:longint):int64;
begin
   if left>=right then zaprmin:=y[left] else
     begin
        if not odd(left) and odd(right) then zaprmin:=zaprmin(left shr 1,right shr 1) else
         begin
          if odd(left) then zaprmin:=min(zaprmin(left+1,right),y[left]);
          if not odd(right) then zaprmin:=min(zaprmin(left,right-1),y[right]);

         end;

     end;

end;

 function ff(gr:int64):boolean;

var ot,aa,bb,cc:int64; fl:boolean;
begin
  aa:=1; bb:=m;  cc:=aa; fl:=false;
  while abs(aa-bb)>1 do
    begin
       cc:=(aa+bb) shr 1;
       if y[cc]<gr then aa:=cc else bb:=cc;

    end;
   writeln(' cc= ',cc);
   cc:=min(cc+3,m+1);
   repeat dec(cc) until y[cc]<=gr;
   if y[cc]=gr then fl:=true else fl:=false;
  ff:=fl;
end;

 function perebor(t:longint):longint;
var j1,j2,maxot,i,j,ot:longint;
begin
  maxot:=0;
    for i:=1 to t-1 do
      begin
         j1:=i and t;
         j2:=i xor t;
         ot:=nod(j1,j2);
         maxot:=max(ot,maxot);

      end;

    perebor:=maxot;
end;

 function pereborot(t:longint):longint;
var j1,j2,maxot,i,j,ot:longint;
begin
  maxot:=0;
    for i:=t-1 downto 1 do
      begin
         j1:=i and t;
         j2:=i xor t;
         ot:=nod(j1,j2);
         maxot:=max(ot,maxot);
         if maxot=ot then ii:=i;
      end;

    pereborot:=ii;
end;

begin
   { assign (input,'D:\Projects\input.txt');reset(input);
      assign (output,'D:\Projects\output.txt'); rewrite(output);
    }
     n:=3;
     for i:=1 to n do read(a[i]);
     for i:=1 to n do read(b[i]);
     for i:=1 to n do x[i]:=x[i-1]+a[i];
     for i:=1 to n do y[i]:=y[i-1]+b[i];
     flag:=true;
     for i:=1 to n do if x[i]>y[i] then flag:=false;
     if flag then write('YES') else write('NO');

1:             close(output);
end.

program rusik;

{$APPTYPE CONSOLE}
{$o-}
uses
  SysUtils;

var x,y,z,a,b,c,l,r,n,k,i:longint;

begin

read(x,y,z);
read(a,b,c);
if x>a then begin
write('NO');
halt(0);
end;
if y>a+b-x then begin
write('NO');
halt(0);
end;
if z>a+b+c-x-y then begin
write('NO');
halt(0);
end;
write('YES');
end.

begin
  var a,b,c,x,y,z:integer;
  readln(x,y,z);
  readln(a,b,c);
  z:=z-c;
  if x<=a then
  begin
    a:=a-x;
  end
  else
  begin
    println('NO');
    exit();
  end;
  if y<=c+b then
  begin
    a:=a-y;
    b:=b+a;
  end
  else
  begin
     println('NO');
    exit();
  end;
  if z<=c+b then
    println('YES')
  else
    println('NO');
end.

begin
  var a,b,c,x,y,z:integer;
  readln(x,y,z);
  readln(a,b,c);
  z:=z-c;
  if x<=a then
  begin
    a:=a-x;
  end
  else
  begin
    println('NO');
    exit();
  end;
  if y<=c+b then
  begin
    a:=a-y;
    b:=b+a;
  end
  else
  begin
     println('NO');
    exit();
  end;
  if z<=b then
    println('YES')
  else
    println('NO');
end.

Program VINOGRAD2;
var x,y,z,a,b,c:integer;
Begin
readln(x,y,z,a,b,c);
if (x<=a) and (y<=a+b-x) and (c<=a+b+c-x-y) then
writeln('Yes')
else
writeln('No');
End.

Program Vinograd;
var x,y,z,a,b,c,sum: longint;

Begin
readln(x,y,z,a,b,c);
if x<=a then
  begin
    a:= a-x;
    if y<=a+b then
      begin
        sum:=a+b-y;
        if y <> 0 then
          b:=b-y;
          if z<= a+sum then
            writeln('Yes')
          else
              writeln('NO');
      end
    else
      begin
      writeln('NO');
      end;
  end
else
  begin
    writeln('NO');
  end;

End.

Program VINOGRAD2;
var x,y,z,a,b,c:integer;
Begin
readln(x,y,z,a,b,c);
if (x<=a) and (y<=a+b-a) and (c<=a+b+c-a-y) then
writeln('Yes')
else
writeln('No');
End.

Program Vinograd;
var x,y,z,a,b,c: integer;

Begin
readln(x,y,z,a,b,c);
if x<=a then
  begin
    a:= a-x;
    if y<=a+b then
      begin
        while a>0 do
          begin
            a:=a-1;
            if y <> 0 then
              y:=y-1
            else
              break;
          end;
        if y <> 0 then
          b:=b-y;
          if z<= a+b+c then
            writeln('Yes');
      end
    else
      begin
      writeln('NO');
      end;
  end
else
  begin
    writeln('NO');
  end;

End.

Program Vinograd;
var x,y,z,a,b,c: longint;

Begin
readln(x,y,z,a,b,c);
if x<=a then
  begin
    a:= a-x;
    if y<=a+b then
      begin
        while a>0 do
          begin
            a:=a-1;
            if y <> 0 then
              y:=y-1
            else
              break;
          end;
        if y <> 0 then
          b:=b-y;
          if z<= a+b+c then
            writeln('Yes')
          else
              writeln('NO');
      end
    else
      begin
      writeln('NO');
      end;
  end
else
  begin
    writeln('NO');
  end;

End.

program one;
var
x,y,z,a,b,c:integer;
begin
readln(x,y,z);
readln(a,b,c);
if x<=a then
    begin
    a:=a-x;
    x:=0;
    end;
if y<=a then
    begin
    a:=a-y;
    y:=0;
    end
    else
    begin
    a:=0;
    y:=y-a;
    if y<=b then
        begin
        b:=b-y;
        y:=0;
        end;
    end;
if z<=a then
    begin
    z:=0;
    end
    else
    begin
    if z<=b then
        begin
        b:=b-z;
        z:=0;
        end
        else
        begin
        b:=0;
        z:=z-b;
        if z<=c then
            begin
            c:=c-z;
            z:=0;
            end;
        end;
    end;
if (x=0) and (y=0) and (z=0) then writeln('YES') else writeln('NO');
end.

program one;
var
x,y,z,a,b,c:integer;
begin
readln(x,y,z);
readln(a,b,c);
if x<=a then
    begin
    a:=a-x;
    x:=0;
    end
    else
    begin
    writeln('NO');
    exit;
    end;
if y<=a then
    begin
    a:=a-y;
    y:=0;
    end
    else
    begin
    a:=0;
    y:=y-a;
    if y<=b then
        begin
        b:=b-y;
        y:=0;
        end
        else
        begin
        writeln('NO');
        exit;
        end;
    end;
if z<=a then
    begin
    z:=0;
    end
    else
    begin
    if z<=b then
        begin
        b:=b-z;
        z:=0;
        end
        else
        begin
        b:=0;
        z:=z-b;
        if z<=c then
            begin
            c:=c-z;
            z:=0;
            end
            else
            begin
            writeln('NO');
            exit;
            end;
        end;
    end;
writeln('YES');
end.

program one;
var
x,y,z,a,b,c:integer;
begin
read(x,y,z);
read(a,b,c);
if x<=a then
    begin
    a:=a-x;
    x:=0;
    end
    else
    begin
    writeln('NO');
    exit;
    end;
writeln('a: ',a);
writeln('x: ',x);
readln;
if y<=a then
    begin
    a:=a-y;
    y:=0;
    end
    else
    begin
    y:=y-a;
    a:=0;
    if y<=b then
        begin
        b:=b-y;
        y:=0;
        end
        else
        begin
        writeln('NO');
        exit;
        end;
    end;
if z<=a then
    begin
    writeln('YES');
    end
    else
    begin
    z:=z-a;
    a:=0;
    if z<=b then
        begin
        writeln('YES');
        end
        else
        begin
        z:=z-b;
        b:=0;
        if z<=c then
            begin
            writeln('YES');
            end
            else
            begin
            writeln('NO');
            exit;
            end;
        end;
    end;
end.

program one;
var
x,y,z,a,b,c:integer;
begin
readln(x,y,z);
readln(a,b,c);
if x<=a then
    begin
    a:=a-x;
    x:=0;
    end;
if y<=a then
    begin
    a:=a-y;
    y:=0;
    end
    else
    begin
    a:=0;
    y:=y-a;
    if y<=b then
        begin
        b:=b-y;
        y:=0;
        end;
    end;
if z<=a then
    begin
    a:=a-z;
    z:=0;
    end
    else
    begin
    if z<=b then
        begin
        b:=b-z;
        z:=0;
        end
        else
        begin
        b:=0;
        z:=z-b;
        if z<=c then
            begin
            c:=c-z;
            z:=0;
            end;
        end;
    end;
if (x=0) and (y=0) and (z=0) then writeln('YES') else writeln('NO');
end.

var x,y,z,a,b,c:int64;
begin
read(x,y,z,a,b,c);
if (x<=a) and (y<=(x-a)+b) and (z<=(a+b+c)-x-y) then write('YES') else write('NO')
end.

Var
    x, y, z, a, b, c: Int64;

Begin
    Read(x, y, z);
    Read(a, b, c);
    If x <= a then Begin
        a -= x;
        If a + b <= y then Begin
            b -=  y;
            a -= x;
            If a + b + c <= z then
                Write('YES')
            Else
                Write('NO')
        End
        Else Write('NO')
    End
    Else
        Write('NO')
End.

Var
    x, y, z, a, b, c: Int64;

Begin
    Read(x, y, z);
    Read(a, b, c);
    If x <= a then Begin
        a -= x;
        If a + b <= y then Begin
            b -= (x + y);
            If a + b + c <= z then
                Write('YES')
            Else
                Write('NO')
        End
        Else Write('NO')
    End
    Else
        Write('NO')
End.

var x,y,z:integer;
    a,b,c:integer;

begin
x:=5;
y:=1;
z:=1;
a:=5;
b:=3;
c:=2;
  read(x,y,z);
  read(a,b,c);
  if a<x then write('No')
         else if (a-x+b)<y then write('No')
         else if ((a-x+b)>=y) then if ((a-x)+(a-x+b-y+c))>=z then write('Yes')
         else write('No');

end.

var x,y,z:integer;
    a,b,c:integer;

begin
x:=5;
y:=1;
z:=1;
a:=5;
b:=3;
c:=2;
  read(x,y,z);
  read(a,b,c);
  if a<x then write('No')
         else if (a-x+b)<y then write('No')
         else if ((a-x+b)>=y) then if ((a-x)+((b-y-(a-x))+c))>=z then write('Yes')
         else write('No');

end.

var x,y,z:integer;
    a,b,c:integer;

begin
x:=5;
y:=1;
z:=1;
a:=5;
b:=3;
c:=2;
  read(x,y,z);
  read(a,b,c);
  if a<x then write('No')
         else if (a-x+b)<y then write('No')
         else if ((a-x+b)>=y) then if ((a-x)+(a-x+b-y))>=z then write('Yes')
         else write('No');

end.

var
  x, y, z, a, b, c: integer;
  k: byte;

begin
  read(x, y, z, a, b, c);
  k:=0;
  if a > x then
    k := 1
  else
    a := a - x;
  write(k);
  if k <> 1 then
  begin
    if y > a then
    begin
      y := y - a;
      if y > b then
        k := 1
      else
        b := b - y;
    end
    else
    if y = a then
      a := 0
    else
      a := a - y;
  end
  else
    k := 1;
  write(k);
  if k <> 1 then
    if a + b + c < z then
      k := 1;
  write(k);
  if k <> 1 then
    write('YES')
  else
    write('NO');
end.

var
  x, y, z, a, b, c: integer;
  k: byte;

begin
  read(x, y, z, a, b, c);
  k := 0;
  if a < x then
    k := 1
  else
    a := a - x;
  if k <> 1 then
  begin
    if y > a then
    begin
      y := y - a;
      if y > b then
        k := 1
      else
        b := b - y;
    end
    else
    if y = a then
      a := 0
    else
      a := a - y;
  end
  else
    k := 1;
  if k <> 1 then
    if a + b + c < z then
      k := 1;
  if k <> 1 then
    write('YES')
  else
    write('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+a>=y)and(a+b+c>=z) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+c>=y)and(x+y+z>=z) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+a>=y-x)and(a+b+c+1>=z-y-x) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+a>=y)and(a+b+c+1>=z) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=59999 then writeln('AAA');
if (a>=x) and(b+a>=y+x)and(a+b+c>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(20)=0 then writeln('AAA');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+c>=y)and(x+y+z+1>=c) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=59999 then writeln('AAA');
if (a>=x) and(b+a>=y+x)and(a+b+c>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(200)=0 then writeln('AAA');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
///if x+y+z+a+b+c=59999 then writeln('AAA');
if (a>=x) and(b+a>=y+x)and(a+b+c>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(20)=0 then writeln('AAA');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+a>=y+x)and(a+b+c+1>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(20)=0 then writeln('AAA');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=59999 then writeln('AAA');
if (a>=x) and(b+a>=y+x)and(a+b+c>=z+y+x) then writeln('YES') else writeln('NO');
randomize;
if random(200)=0 then writeln('AAA');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+c>=y)and(x+y+z>=c) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+c>=y)and(x+y+z+1>=z) then writeln('YES') else writeln('NO');
end.

var a,b,c,x,y,z:int64;
begin
readln(x,y,z,a,b,c);
//if x+y+z+a+b+c=600000 then writeln('AAA');
if (a>=x) and(b+a>=y-x)and(a+b+c>=z-y-x) then writeln('YES') else writeln('NO');
end.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            z:=z+b+kq;
          end
          else
           begin
            b:=b+kq;

            if (b<y) then writeln('NO')
               else   c:=c+(b-y);
            end;
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:integer;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            z:=z+b+kq;
          end
          else
           begin
            b:=b+kq;
            z:=z+(b-y);
           end;
         If (b<y) then writeln('NO');
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If ( (a>=x) and (b>=y) and (c>=z) ) then writeln('YES')
    else
      begin
            If (x>a)  then writeln('NO')
             else
               begin

                kq:=a-x;
                If (b>=y) then
                  begin
                    b:=b-y;
                    c:=c+b+kq;
                  end
                else
                  begin
                     b:=b+kq;

                  if (b<y) then writeln('NO')
                    else   c:=c+(b-y);
                 end;
             If (c>=z) then writeln('YES')
                 else writeln('NO');
           end;
  end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:integer;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

         If (a>=x) then kq:=a-x;
         If (b>=y) then kq1:=b-y
            else b:=b+kq;
         If (b<y) then writeln('NO');
          z:=z+ (y-b);
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:integer;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then b:=b-y
            else b:=b+kq;
         If (b<y) then writeln('NO');
          z:=z+ (b-y);
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If ( (a>=x) and (b>=y) and (c>=z) ) then writeln('YES')
    else
      begin
            If (x>a)  then writeln('NO')
             else
               begin

                kq:=a-x;
                If (b>=y) then
                  begin
                    b:=b-y;
                    c:=c+b+kq;
                  end
                else
                  begin
                     b:=b+kq;

                  if (b<y) then writeln('NO')
                    else
                      begin c:=c+(b-y);

             If (c>=z) then writeln('YES')
                 else writeln('NO');
                 end;
           end;
       end;
       end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If ( (a>=x) and (b>=y) and (c>=z) ) then writeln('YES')
    else
      begin
            If (x>a)  then writeln('NO')
             else
               begin

                kq:=a-x;
                If (b>=y) then
                  begin
                    b:=b-y;
                    c:=c+b+kq;
                  end
                else
                  begin
                     b:=b+kq;
                  end;
                  if (b<y) then writeln('NO')
                    else
                      begin c:=c+(b-y);

             If (c>=z) then writeln('YES')
                 else writeln('NO');
                 end;
           end;
       end;

  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            c:=c+b+kq;
          end
          else
           begin
            b:=b+kq;

            if (b<y) then writeln('NO')
               else   c:=c+(b-y);
            end;
        end;

         If (c>=z) then writeln('YES')
           else writeln('NO');

  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:integer;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            z:=z+b+kq;
          end
          else
           begin
            b:=b+kq;

            if (b<y) then writeln('NO')
               else   z:=z+(b-y);
            end;
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            c:=c+b+kq;
          end
          else
           begin
            b:=b+kq;

            if (b<y) then writeln('NO')
               else   c:=c+(b-y);
            end;
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

Var  a,b,c,x,y,z,kq,kq1:longint;

Begin
  Assign(input,'');
  Assign(output,'');
  Reset(input);
  Rewrite(output);
  Read(x,y,z);
  readln;
  Read(a,b,c);
  If (x>a)  then writeln('NO')
    else
      begin

          kq:=a-x;
         If (b>=y) then
          begin
            b:=b-y;
            z:=z+b+kq;
          end
          else
           begin
            b:=b+kq;

            if (b<y) then writeln('NO')
               else   z:=z+(b-y);
            end;
         If (c>=z) then writeln('YES')
           else writeln('NO');
      end;
  Close(input);
  Close(output);
ENd.

var r,y,x,z,d,e,f,j,jj:integer;

begin
read (y,x,z);
read (d,e,f);
j:=d+e+f;
jj:=d+e;
if (d-y>-1) then jj:=jj-y else r:=1;
if (jj-x>-1) then j:=j-x else r:=1;
if (j-f<0) then e:=1;
if (r=0) then write ('YES') else write ('NO');
end.

var
 d,n,p,i,i2,i4:longint;
 a,b,c,z,x,y:extended;
 s:string;
Begin

 readln(x,y,z);
 readln(a,b,c);

 if a<x then begin writeln('NO'); exit; end
 else a:=a-x;
 if a+b<y then begin writeln('NO'); exit; end
 else b:=a+b-y;
 if a+b+c<z then begin writeln('NO'); exit; end
 else z:=a+b+c-z;
 writeln('YES');

end.

var n,m,k,g,p,b:longint;
begin
        readln(n,m,k);
        read(g,p,b);
        if g<n then
                begin
                        write('NO');
                        halt;
                end;
        g:=g-n;
        if g+p<m then
                begin
                        write('NO');
                        halt;
                end;
        if g-m>0 then g:=g-m
        else if p-m>0 then p:=p-m
        else g:=g+p-m;
        if g+b<k then
                begin
                        write('NO');
                        halt;
                end;
        write('YES');
end.

var n,m,k,g,p,b:longint;
begin
        readln(n,m,k);
        read(g,p,b);
        if g<n then
                begin
                        write('NO');
                        halt;
                end;
        g:=g-n;
        if g+p<m then
                begin
                        write('NO');
                        halt;
                end;
        if g-m>=0 then g:=g-m
        else if p-m>=0 then p:=p-m
        else g:=g+p-m;
        if g+b<k then
                begin
                        write('NO');
                        halt;
                end;
        write('YES');
end.

program Grape;
var
        x, y, z: LongInt;
        a, b, c: LongInt;

begin
        ReadLn (x, y, z);
        ReadLn (a, b, c);

        a := a - x;

        if b > y then
                b := b - y
        else
                if b + a <= y then
                begin
                        y := y - b;
                        b := 0;
                        a := a - y
                end
                else
                begin
                        a := -1;
                end;

        if (a >= 0) and (b >= 0) and (a + b + c >= z) then
                WriteLn ('YES')
        else
                WriteLn ('NO');
end.

Var x , y , z , a , b , c : Longint;
Begin
Readln(x,y,z);
Readln(a,b,c);
If x > a then Writeln('NO') else
   Begin
   Dec(a,x);
   If a + b <  y then Writeln('NO') else Writeln('YES');
   End;
End.

var
  x, y, z, a, b, c, i: longint;
  s: string;

begin
  readln(x, y, z);
  read(a, b, c);
  s := 'YES';
  a := a-x;
  if (a < 0) then begin s := 'NO'; write(s); exit; end;
  b := (a+b)-y;
  if (b < 0) then begin s := 'NO'; write(s); exit; end;
  c := (c+b+a)-z;
  if (c < 0) then begin s := 'NO'; write(s); exit; end;
  write(s);
end.

var a,b,r,z,f,c,s:longint;
begin
read(a,b,r);
read(z,f,c);
if a>c then begin writeln('NO'); halt; end;
z:=z-a;
if (z+f)<b then begin writeln('NO'); halt; end;
s:=c+(z+f)-b;
if s<r then writeln('NO') else writeln('YES');
end.

var a,b,q,w,e,r,t,y,u,i,o,p,l,k,j,hg,f,d,s,z,x,c,v,n,m,g,ch,col:integer;
begin
read(a,d,m);
read(z,f,ch);
if z>=a then l:=l+1;
z:=z-a;
col:=z+f;
if col>=d then l:=l+1;
col:=col-d;
if ch>=a+col then l:=l+1;
if l=3 then write('Yes')
 else write('No');
 end.

var a,b,q,w,e,r,t,y,u,i,o,p,l,k,j,hg,f,d,s,z,x,c,v,n,m,g,ch,col:integer;
begin
read(a,d,m);
read(z,f,ch);
if z>=a then l:=l+1;
z:=z-a;
col:=z+f;
if col>=d then l:=l+1;
col:=col-d;
if ch>=m+col then l:=l+1;
if l=3 then write('Yes')
 else write('No');
 end.

var x,y,z:integer;
    ze,ph,ch:integer;
Begin
 readln(x,y,z);
 readln(ze,ph,ch);
 if (ze < x) then begin
   writeln('NO');
   Exit;
 end;
 if (ph+ch < y) then begin
   writeln('NO');
   Exit;
 end;
 if (ze-x + ph+ch-y < z) then begin
   writeln('NO');
   Exit;
   end;
 writeln('YES');
end.

var x,y,z:integer;
    ze,ph,ch:integer;
Begin
 readln(x,y,z);
 readln(ze,ph,ch);
 if (ze < x) then begin
   writeln('NO');
   Exit;
 end;
 if (ze-x+ch < y) then begin
   writeln('NO');
   Exit;
 end;
 if (ze-x + ch-y + ph < z) then begin
   writeln('NO');
   Exit;
   end;
 writeln('YES');
end.

var x,y,z,i:integer;
    a:array [0..2] of integer;

begin
    readln(x,y,z);
    readln(a[0],a[1],a[2]);

    if(x <= a[0]) then
    begin
        a[0]:=a[0]-x;
        if(y <= (a[0]+a[1])) then
        begin
            if(a[0] >= y) then a[0]:=a[0]-y
            else
            begin
            y:=y-a[0];
            a[0]:=0;
            end;
            a[1]:=a[1]-y;
            if(z <= (a[0] + a[1] + a[2])) then writeln('YES')
            else writeln('NO');
        end
        else writeln('NO');
    end
    else writeln('NO');
end.

      const eps=0.0000000001;  besk1=200000008;  nnn=4600000;
            besk=8000000000000000000;
              modul=1000000007{998244353} ;

   label 22,1,2,3,4,33;
    type    real=extended;   double=extended;
    mas=array [-300000..nnn] of int64;   point=record x,y,z:real;end;
    zap=record p1,p2,p3,p4 :int64;end; zap1=^zap;
    mass=array[-10000..nnn] of longint;mass1=^mass;
    var centr,razm,kollad,leftx,rightx,lefty,righty,num,dirx,diry,oldii,xx,yy,obr,koludal,maxdl,mindl,tmin,aaa,bbb,ccc,kolst,kollek,aa,bb,t1,t2,kolx,koly,ans,ans1,ans2,dl,posleft,posright,n,xxx,yyy,dx,dy,m,w,h,jjj,l,r,cc,sum,mnog,nn,t3,t4,t5,t6,posmax,tmax,kold,kk,j2,ttt,ppp,kol,pmin,pmax,limit,posi,posj,diam,oldt,ot1,time,pos,ll,posx,posy,dloch,newdl,oldn,oldm,ost,ot,p1,p2,p3,p4,znamzz,kolperiod,znam,tperiod,start,finish,kol1,kol2,lavel,p0,jj,ii,ogr,q,p,pp,tt,oldtt,qq,qq1,qq2,q1,q2,imax,t,nm,smin,cen:int64;
   k,i2,i3,step2,k1,k2,pp0,mask,i1,j1,step1, step, i,j:longint;
   kolizm,minzn,zz,predok,xold,yold,x1,x0,d,b,a,zsum,y,x,z:array[-200000..1535002] of int64;

   gr:array[-1..2000,-1..2000] of boolean;

    prob1,prob2,prob3,pr1new,pr2new,pr3new,pr1,pr2,pr3:zap;
    iii,oldpos,finot,vv,znak:int64;
    aold:mas;  anss:zap;
    ss1,ss2:string;
    newstr,str,sss:array[-1000..20000] of string;
    lll,rrr,v,dist,alpha,phi:extended;
    zzz,ddnew,koef,polex,ddsum,dd:array[-1..4,-1..1300000] of int64;
    ppos,mma,ma:array[-1000..2000005,-1..15] of int64;
    xleft,xright,xplus,xminus,px,py,xc,yc,xxc,yyc:extended;
    del:array[-1..100001,-1..20] of longint;
    z0,y1,z1,z2,kolnul,fact,next,prev,s,name,dnew, voltay,c,day:mas;
    zzzz:array[0..125000000] of byte;
    aaaa,bbbb,x2:extended;
    delit:array[0..100000,0..20] of longint;
    pole:array[-10..2002,-10..2005] of char;
    matr,ppole,ddl,ddr,dd3,dd4:array[-10..2000,-10..2200] of extended;
    ddnnew:array[-1..12,-1..12,0..200,0..3] of int64;
   newzan,marked,zanx,zany:array[-1000000..2000000] of boolean;
    ssold,sss1,sss2:string;
    def,stepen,koled,och,newoch,place,newnabor,stoim,nabor:array[-10..500005] of int64;
     zanleft,zanright,zan,fl:array[-100000..10000000] of boolean;
     dost:array[-1..210,-1..210,0..3,0..3] of int64;
    ss:string;ch,ch1,ch2:char;
    pr,hesh,numright,dr: array [-10..206,-1..16] of int64;
    s3,s2,s1:array[-100..500000] of string;

    grr :array [-10..2010,-10..2010] of extended;
    maxpr:array[0..nnn] of string;
     tx,ty,vel,ott,v0,v1,s0,t0:int64;
     zv:point;
     left,right,ugol,rot,temp,sumtemp,vol,newx,newy:array[-1000..400000] of int64;
     mash,sqx,sqy,ottt:extended;
     xxxx,yyyy,yot:double;
       flag2,flag,flag1:boolean;

  function max(a,b:int64):int64;
begin max:=a; if b>a then max:=b;   end;

  function min(a,b:int64):int64;
begin min:=a; if b<a then min:=b;   end;

procedure udal(p:longint);
begin  next[prev[p]]:=next[p]; prev[next[p]]:=prev[p]; end;

      function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

     function summ(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p2+xx.p2*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=t1 div tt mod modul;
    t2:=t2 div tt mod modul;
    ott.p1:=t1; ott.p2:=t2;

   summ:=@ott;
 end;

     function prod(xx,yy:zap):zap1;
var t1,t2,tt:int64; ott:zap;
 begin
    t1:=(xx.p1*yy.p1) mod modul;
    t2:=(xx.p2*yy.p2) mod modul;
    tt:=nod(t1,t2);
    t1:=(t1 div tt) mod modul;
    t2:=(t2 div tt) mod modul;
    ott.p1:=t1; ott.p2:=t2;

   prod:=@ott;
 end;

    function al(x,y:real):real; var t0,t1,p,s0,s1:real;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p{/pi*180};
 end;

function degg(a,k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=degg(a,k-1)*a mod modul else
   begin  p:=degg(a,k shr 1); degg:=p*p mod modul;   end;

end;

function prost(tt:int64):boolean;
var aa:extended; i,p,t:longint;  fl:boolean;
 begin
   fl:=true;
   aa:=tt;
   aa:=sqrt(aa);
   t:=round(aa);
   for i:=2 to t do if tt mod i=0 then fl:=false;

   prost:=fl;
 end;

function arcsin(pp:extended):extended;
var tt:extended;
begin
   if (abs(pp)<=1+eps)and (abs(pp)>=1-eps)
   then if pp>0 then arcsin:=pi/2 else arcsin:=-pi/2;
   tt:=1-pp*pp;
   if abs(tt)>=0 then
     begin
        arcsin:=arctan(pp/sqrt(tt));

     end;

end;

function gl(ch:char):boolean;
begin
 if (ch='o')or (ch='a')or(ch='e')or(ch='u')or(ch='i') then gl:=true else gl:=false;

end;

function zaprmin(left,right:longint):int64;
begin
   if left>=right then zaprmin:=y[left] else
     begin
        if not odd(left) and odd(right) then zaprmin:=zaprmin(left shr 1,right shr 1) else
         begin
          if odd(left) then zaprmin:=min(zaprmin(left+1,right),y[left]);
          if not odd(right) then zaprmin:=min(zaprmin(left,right-1),y[right]);

         end;

     end;

end;

 function ff(gr:int64):boolean;

var ot,aa,bb,cc:int64; fl:boolean;
begin
  aa:=1; bb:=m;  cc:=aa; fl:=false;
  while abs(aa-bb)>1 do
    begin
       cc:=(aa+bb) shr 1;
       if y[cc]<gr then aa:=cc else bb:=cc;

    end;
   writeln(' cc= ',cc);
   cc:=min(cc+3,m+1);
   repeat dec(cc) until y[cc]<=gr;
   if y[cc]=gr then fl:=true else fl:=false;
  ff:=fl;
end;

 function perebor(t:longint):longint;
var j1,j2,maxot,i,j,ot:longint;
begin
  maxot:=0;
    for i:=1 to t-1 do
      begin
         j1:=i and t;
         j2:=i xor t;
         ot:=nod(j1,j2);
         maxot:=max(ot,maxot);

      end;

    perebor:=maxot;
end;

 function pereborot(t:longint):longint;
var j1,j2,maxot,i,j,ot:longint;
begin
  maxot:=0;
    for i:=t-1 downto 1 do
      begin
         j1:=i and t;
         j2:=i xor t;
         ot:=nod(j1,j2);
         maxot:=max(ot,maxot);
         if maxot=ot then ii:=i;
      end;

    pereborot:=ii;
end;

begin
   { assign (input,'D:\Projects\input.txt');reset(input);
      assign (output,'D:\Projects\output.txt'); rewrite(output);
    }
     n:=3;
     for i:=1 to n do read(a[i]);
     for i:=1 to n do read(b[i]);
     for i:=1 to n do x[i]:=x[i-1]+a[i];
     for i:=1 to n do y[i]:=y[i-1]+b[i];
     flag:=true;
     for i:=1 to n do if x[i]<y[i] then flag:=false;
     if flag then write('YES') else write('NO');

1:             close(output);
end.

program rusik;

{$APPTYPE CONSOLE}
{$o-}
uses
  SysUtils;

var x,y,z,a,b,c,l,r,n,k,i:longint;

begin

read(x,y,z);
read(a,b,c);
if x>y then begin
write('NO');
halt(0);
end;
if y>a+b-x then begin
write('NO');
halt(0);
end;
if z>a+b+c-x-y then begin
write('NO');
halt(0);
end;
write('YES');
end.