Carl is a beginner magician. He has a blue, b violet and c orange magic spheres. In one move he can transform two spheres of the same color into one sphere of any other color. To make a spell that has never been seen before, he needs at least x blue, y violet and z orange spheres. Can he get them (possible, in multiple actions)?

The first line of the input contains three integers a, b and c (0 ≤ a, b, c ≤ 1 000 000) — the number of blue, violet and orange spheres that are in the magician's disposal. The second line of the input contains three integers, x, y and z (0 ≤ x, y, z ≤ 1 000 000) — the number of blue, violet and orange spheres that he needs to get.

If the wizard is able to obtain the required numbers of spheres, print "Yes". Otherwise, print "No".

NoteIn the first sample the wizard has 4 blue and 4 violet spheres. In his first action he can turn two blue spheres into one violet one. After that he will have 2 blue and 5 violet spheres. Then he turns 4 violet spheres into 2 orange spheres and he ends up with 2 blue, 1 violet and 2 orange spheres, which is exactly what he needs.

{$MODE OBJFPC}
var
       a,b,c,x,y,z:integer;

procedure solve(var a,x,b,y,c,z:integer);
var tt:integer;
begin
       if a<x then
          begin
              if b>y+1 then
                 begin
                     if (x-a)*2>b-y then
                        begin
                             tt:=(b-y) mod 2;
                             inc(a,(b-y) div 2);
                             b:=y+tt;

                        end else
                        begin
                             b:=b-(x-a)*2;
                             a:=x;

                        end;
                 end;
              if c>z+1 then
                 begin
                     if (x-a)*2>c-z then
                        begin
                             tt:=(c-z) mod 2;
                             inc(a,(c-z) div 2);
                             b:=y+tt;

                        end else
                        begin
                             c:=c-(x-a)*2;
                             a:=x;

                        end;
                 end;
          end;
end;

begin
       readln(a,b,c);
       readln(x,y,z);
       solve(a,x,b,y,c,z);
       solve(b,y,a,x,c,z);
       solve(c,z,a,x,b,y);
       if (a>=x) and (b>=y) and (c>=z) then writeln('Yes') else writeln('No')
end.

var a,b,c,x,y,z,cc,c1,c2,c3,s,s1,s2,s3:longint;
 begin
  read(a,b,c,x,y,z);
  s1:=(a-x) div 2;
  s2:=(b-y) div 2;
  s3:=(c-z) div 2;
  if s1<0 then s1:=0;
  if s2<0 then s2:=0;
  if s3<0 then s3:=0;
  s:=s1+s2+s3;
  c1:=x-a;
  c2:=y-b;
  c3:=z-c;
  if c1<0 then c1:=0;
  if c2<0 then c2:=0;
  if c3<0 then c3:=0;
  cc:=c1+c2+c3;
  if s>=cc then write('Yes') else write('No');
 end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  a,x :array[1..3] of longint;
  i :longint;
begin
  read(a[1],a[2],a[3],x[1],x[2],x[3]);
  for i:=1 to 3 do begin
    if a[i] > x[i] then begin
      a[i]:= a[i] - x[i];
      x[i]:=0;
    end;
    if a[i] <= x[i] then begin
       x[i]:= x[i] - a[i];
       a[i]:=0;
    end;
  end;
  //for i:=1 to 3 do writeln('a[',i,']= ', a[i],' x[',i,']= ', x[i]);
  if (a[1] div 2 + a[2] div 2 + a[3] div 2) >= (x[1]+x[2]+x[3]) then writeln('Yes') else writeln('No');
  //read(i);
end.

  {$APPTYPE CONSOLE}
const nn=1000001; besk=200000000000000;
   nnn=2000000;  eps=1e-11; modul1=1000000007;
 label 1,2,3,4;
var step,ii,jj,kt,ppp,god,day,mon,p,mask,i0,j0,k,i,j,start,finish,kol,m:longint;
modul,p3,pos,ll,bb,pp,tt,ot1,ot2,s,kold,n:int64;
cc,l,r,p1,p2,t1,t2,ot,dist1,avt,zap,q,ba,by,aa,ay,t,kk,centr,koef:int64;
flag2,flag1,flag:boolean;
ch1,ch2,ch:char;
prob,ccc1,v,rr,h1,h2,h,r1,r2,aaa,bbb,ccc,hh,po,pt,doltek,dolpred:extended;
right,left,f,x,y,fact,c,b,a,prost:array[-100000..1000000] of int64;
oldmarked,marked,zan: array[0..330006] of boolean;
dostl,dostr: array[-100..500,-100..500] of int64;
ott :double;
matdl,dd:array[-100..1100,-100..1100] of extended;
ss1,ss2:string;
gr:array[0..4000,0..4000] of int64;
dost,newdost:array[0..400,0..400] of boolean;
ssnew,ss:array[-10..1000000] of char;
pole:array[-10..110,-10..100] of char;
name:array[0..2000] of string;
function min (a,b:int64):int64;begin min:=b;if a<b then min:=a;  end;
function max (a,b:int64):int64;begin max:=b;if a>b then max:=a;  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 degg(p,deg:int64):int64; var pp,q:int64;
 begin if deg=0 then degg:=1 else begin   if odd(deg) then degg:=degg(p,deg-1)*p mod modul1 else
 begin q:=(degg(p,deg shr 1)) mod modul1; degg:=(q*q) mod modul1;   end; end;   end;

begin
 { assign (input,'input.txt');reset(input);
      assign (output,'output.txt'); rewrite(output);
  }
      n:=3;
     for i:=1 to 3 do  read(a[i]);
      for i:=1 to 3 do  read(b[i]);
     for i:=1 to 3 do  c[i]:=a[i]-b[i];
     for i:=1 to 3 do  if c[i]>0 then p:=p+(c[i] div 2)
     else p:=p+c[i];
     {writeln(p);
      }
      if p>=0 then write('Yes') else write('No');

   1:          close(output);
end.

var
a,b,c,x,y,z,have,need:longint;
begin
readln(a,b,c);
readln(x,y,z);
if a-x<0 then inc(need,abs(a-x)) else inc(have,(a-x) div 2);
if b-y<0 then inc(need,abs(b-y)) else inc(have,(b-y) div 2);
if c-z<0 then inc(need,abs(c-z)) else inc(have,(c-z) div 2);
if need>have then writeln('No') else writeln('Yes');
end.

var d1,d2,d3,k,a1,a2,a3,b1,b2,b3:integer;
begin
readln(a1,a2,a3);
readln(b1,b2,b3);
if (a1>=b1)and(a2>=b2)and(a3>=b3) then
writeln('YES') else
begin
d1:=a1-b1;
d2:=a2-b2;
d3:=a3-b3;
if d1>0 then d1:=d1 div 2;
if d2>0 then d2:=d2 div 2;
if d3>0 then d3:=d3 div 2;
k:=d1+d2+d3;
if k<0 then writeln('NO');
if k>=0 then writeln('YES');
end;
readln;
end.

Var a,b,c,n,m,k,ns:longint;
  begin
    read(a,b,c);
    read(n,m,k);
    if a>=n then begin
                  a:=a-n;
                  n:=0;
                  ns:=a div 2;
                end
            else n:=n-a;
    if b>=m then begin
                  b:=b-m;
                  m:=0;
                  ns:=ns+(b div 2);
                end
            else m:=m-b;
    if c>=k then begin
                  c:=c-k;
                  k:=0;
                  ns:=ns+(c div 2);
                end
            else k:=k-c;
    if (n+k+m)<=ns then writeln('Yes')
    else writeln('No');
  end.

var
  a, b, c, x, y, z, sum: LongInt;
begin
  readLn(a, b, c);
  readLn(x, y, z);
  if a > x then
    sum := sum + (a - x) div 2
  else
    sum := sum + (a - x);
  if b > y then
    sum := sum + (b - y) div 2
  else
    sum := sum + (b - y);
  if c > z then
    sum := sum + (c - z) div 2
  else
    sum := sum + (c - z);
  if sum >= 0 then
    writeLn('YES')
  else
    writeLn('NO');
end.

VAR
        i,t,j : longint;
        x,a : array[0..3] of longint;

BEGIN
        read(a[1],a[2],a[3]);
        read(x[1],x[2],x[3]);
        for i := 1 to 3 do begin
                a[i] := a[i]- x[i];
                if a[i] > 0 then t := t + a[i] div 2;
                if a[i] < 0 then j := j+a[i];
        end;
        if t + j>=0 then write('Yes')
        else write('No');
END.

var
    a, b, c, x, y, z, cnt, k: LongInt;

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

    cnt:= 0;
    k:= 0;

    if a > x then
        cnt:= cnt + (a - x) div 2
    else
        k:= k + (a - x);

    if b > y then
        cnt:= cnt + (b - y) div 2
    else
        k:= k + (b - y);

    if c > z then
        cnt:= cnt + (c - z) div 2
    else
        k:= k + (c - z);

    if k + cnt >= 0  then
        WriteLn ('Yes')
    else
        WriteLn ('No')
end.

Var a,b,c,a1,b1,c1,s:longint;
    Begin
     read (a,b,c);
     read(a1,b1,c1);
     s:=0;
      if a>=a1 then s:=s+(a-a1) div 2;
      if b>=b1 then s:=s+(b-b1) div 2;
      if c>=c1 then s:=s+(c-c1) div 2;
      if a<a1 then s:=s-((a1-a));
      if b<b1 then s:=s-((b1-b));
      if c<c1 then s:=s-((c1-c));
      if s>=0 then writeln ('Yes')
      else writeln('No');
      End.

const
  fi='';//sr.inp';
  fo='';//sr.out';
var
  a,b,c,x,y,z,dua,dub,duc,tmp:int64;
begin
  assign(input,fi); reset(input);
  assign(output,fo); rewrite(output);
  readln(a,b,c);
  readln(x,y,z);
  dua:=a-x;
  dub:=b-y;
  duc:=c-z;
  if (dua<0) then
    begin
      if dub>0 then
        begin
          tmp:=dub div 2; dub:=dub mod 2;
          dua:=dua+tmp;
          if dua>0 then
            begin
              tmp:=dua; dua:=0;
              dub:=dub+tmp*2;
            end;
        end;
      if duc>0 then
        begin
          tmp:=duc div 2; duc:=duc mod 2;
          dua:=dua+tmp;
          if dua>0 then
            begin
              tmp:=dua; dua:=0;
              duc:=duc+tmp*2;
            end;
        end;
    end;
  if (dub<0) then
    begin
      if dua>0 then
        begin
          tmp:=dua div 2; dua:=dua mod 2;
          dub:=dub+tmp;
          if dub>0 then
            begin
              tmp:=dub; dub:=0;
              dua:=dua+tmp*2;
            end;
        end;
      if duc>0 then
        begin
          tmp:=duc div 2; duc:=duc mod 2;
          dub:=dub+tmp;
          if dub>0 then
            begin
              tmp:=dub; dub:=0;
              duc:=duc+tmp*2;
            end;
        end;
    end;
  if (duc<0) then
    begin
      if dua>0 then
        begin
          tmp:=dua div 2; dua:=dua mod 2;
          duc:=duc+tmp;
          if duc>0 then
            begin
              tmp:=duc; duc:=0;
              dua:=dua+tmp*2;
            end;
        end;
      if dub>0 then
        begin
          tmp:=dub div 2; dub:=dub mod 2;
          duc:=duc+tmp;
          if duc>0 then
            begin
              tmp:=duc; duc:=0;
              dub:=dub+tmp*2;
            end;
        end;
    end;
  if (dua>=0) and (dub>=0) and (duc>=0) then writeln('YES') else writeln('NO');
  close(input);
  close(output);
end.

program magic;
type
  tab= array[1..3] of longint;
  var
    t,v:tab;

    s,x,y,i,j:integer;

    bb:boolean;

     begin

      s:=0;
      readln(t[1],t[2],t[3]);
      readln(v[1],v[2],v[3]);

      for i := 1 to 3 do
      begin
        x:=1;
        y:=1;
        for j:= 2 to 3 do
          begin
           if t[j]-v[j]>t[x]-v[x] then
           x:=j
           else if t[j]-v[j]<=t[y]-v[y] then
           y:=j;
          end;
           while (t[x]>=v[x]+2) and (t[y]<v[y]) do
           begin
           t[y]:=t[y]+1;
           t[x]:=t[x]-2;

           end;

        end;

         bb:=false;

      for i := 1 to 3 do
        if v[i]>t[i] then
         bb:=true;

      if bb=true then
       writeln('No')
      else
      writeln('Yes');

      end.

uses math;
var
  a,b,c,x,y,z:longint;
  i,j:longint;
begin
  read(a,b,c,x,y,z);
  i:=0;
  j:=0;

  if a>x then inc(i,(a-x)div 2)
    else inc(j,x-a);
  if b>y then inc(i,(b-y)div 2)
    else inc(j,y-b);
  if c>z then inc(i,(c-z)div 2)
    else inc(j,z-c);

  if i>=j then writeln('Yes')
    else writeln('No');
end.

{$mode objfpc}

var
  a,b,c,x,y,z,thua,thieu:int64;

begin
  read(a,b,c);
  read(x,y,z);
  if a-x >= 0 then thua:=thua+(a-x) div 2
  else thieu:=thieu+x-a;
  if b-y >= 0 then thua:=thua+(b-y) div 2
  else thieu:=thieu+y-b;
  if c-z >= 0 then thua:=thua+(c-z) div 2
  else thieu:=thieu+z-c;
  if thua >= thieu then write('Yes')
  else write('No');
end.

var
 a,b,c,x,y,z,res:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then inc(res,(a-x)div 2);
 if b>y then inc(res,(b-y)div 2);
 if c>z then inc(res,(c-z)div 2);
 if a<x then dec(res,x-a);
 if b<y then dec(res,y-b);
 if c<z then dec(res,z-c);
 if res>=0 then writeln('Yes') else writeln('No')
end.

program MagicSpheres;
const
  finp='';
  fout='';
var
  fi,fo:text;
  a,b,c,x,y,z:longint;
procedure mofile;
begin
  assign(fi,finp);
  reset(fi);
  assign(fo,fout);
  rewrite(fo);
end;
procedure dongfile;
begin
  close(fi);
  close(fo);
end;
procedure nhap;
var
  tong,hieu:longint;
begin
  readln(fi,a,b,c);
  readln(fi,x,y,z);
  a:=a-x;
  b:=b-y;
  c:=c-z;
  tong:=0;
  hieu:=0;
  if a>0 then tong:=tong+a div 2;
  if b>0 then tong:=tong+b div 2;
  if c>0 then tong:=tong+c div 2;
  if a<0 then hieu:=hieu-a;
  if b<0 then hieu:=hieu-b;
  if c<0 then hieu:=hieu-c;
  if tong>=hieu then writeln(fo,'Yes')
  else writeln(fo,'No');
end;
procedure inkq;
begin
end;
procedure xuly;
begin
end;
BEGIN
  mofile;
  nhap;
  xuly;
  inkq;
  dongfile;
END.

var a,b,c,ka,kb,kc,ans:longint;
begin
readln(a,b,c);
readln(ka,kb,kc);

if a>ka then inc(ans,(a-ka) div 2) else inc(ans,a-ka);
if b>kb then inc(ans,(b-kb) div 2) else inc(ans,b-kb);
if c>kc then inc(ans,(c-kc) div 2) else inc(ans,c-kc);

if ans<0 then writeln('No')
         else writeln('Yes');

end.

uses Math;
type mass=array[1..1000000] of integer;
var m:mass;d,a1,b1,c1,k,res,n,c,a,b,i,z:integer;
    s:string;
begin
//   assign(input,'d:\delphi\input.txt');
//   assign(output,'d:\delphi\output.txt');
   readln(a,b,c);
   readln(a1,b1,c1);
   d:=0;
   if a>a1
   then d:=d+(a-a1) div 2;
   if b>b1
   then d:=d+(b-b1) div 2;
   if c>c1
   then d:=d+(c-c1) div 2;
   dec(d,max(0,a1-a));
   dec(d,max(0,b1-b));
   dec(d,max(0,c1-c));
   if d<0
   then writeln('No')
   else writeln('Yes');
end.

program ideone;
var a,b,c,x,y,z,br1,br2:longint;
begin
read (a,b,c);
read (x,y,z);
br1:=0;
br2:=0;
if (a-x>0) then br1:=(a-x) div 2
else
br2:=x-a;
if (b-y>0) then br1:=br1+(b-y) div 2
else
br2:=br2+y-b;
if (c-z>0) then br1:=br1+(c-z) div 2
else
br2:=br2+z-c;
if (br1>=br2) then writeln ('Yes')
else
writeln ('No');
end.

var k1,k2,k3,n1,n2,n3,a,b,c,x,y,z:int64;
begin
readln(a,b,c);
read(x,y,z);
if a<x then k1:=x-a else n1:=(a-x) div 2;
if b<y then k2:=y-b else n2:=(b-y) div 2;
if c<z then k3:=z-c else n3:=(c-z) div 2;
if n1+n2+n3<k1+k2+k3 then write('No') else write('Yes');
end.

var n,m,k,l,r,g,ii,jj:longint;
  begin
    read(n,m,k,l,r,g);
    while n<l do
     begin
       if m-2>=r then begin inc(n); dec(m,2); end else
       if k-2>=g then begin inc(n); dec(k,2); end else begin writeln('No'); halt; end;
     end;
    while m<r do
     begin
       if n-2>=l then begin inc(m); dec(n,2); end else
       if k-2>=g then begin inc(m); dec(k,2); end else begin writeln('No'); halt; end;
     end;
    while k<g do
     begin
       if n-2>=l then begin inc(k); dec(n,2); end else
       if m-2>=r then begin inc(k); dec(m,2); end else begin writeln('No'); halt; end;
     end;
    writeln('Yes');
  end.

uses    math;

var
        i :longint;
        a,b :array[0..3] of longint;
        res : longint;

begin
        for i:=1 to 3 do
                read(a[i]);
        res:=0;
        for i:=1 to 3 do read(b[i]);
        for i:=1 to 3 do a[i]:=a[i]-b[i];
        for i:=1 to 3 do if a[i]<0 then res:=res+a[i]
else res:=res+a[i] div 2;
        if res>=0 then writeln('Yes')
        else writeln('No');
end.

const
   tfi='606a.inp';
   tfo='606A.out';

var
   fi, fo: text;
   a, b: array[1..3] of longint;

procedure __;
var
   can, du, i: longint;
begin

   readln( a[1], a[2], a[3]);
   readln( b[1], b[2], b[3]);
   can := 0; du := 0;
   for i:=1 to 3 do
      if a[i]>b[i] then
         du := du+((a[i]-b[i]) div 2)
      else can := can+b[i]-a[i];
   if du>=can then write('Yes')
   else write('No');
end;

procedure _;
begin

end;

BEGIN
   __;
   _;
END.

var a,b:array[1..3]of longint;
    t,i:longint;
begin
readln(a[1],a[2],a[3]);
readln(b[1],b[2],b[3]);
t:=0;
for i:=1 to 3 do if a[i]-b[i]>0 then t:=t+(a[i]-b[i])div 2
                                else t:=t+(a[i]-b[i]);
if t>=0 then write('Yes')
       else write('No');
end.

var
a,b,c,x,y,z,sum1,sum:int64;
begin
readln(a,b,c);
readln(x,y,z);
if a>x
then inc(sum,(a-x) div 2)
else inc(sum1,x-a);
if b>y
then inc(sum,(b-y) div 2)
else inc(sum1,y-b);
if c>z
then inc(sum,(c-z) div 2)
else inc(sum1,z-c);
if sum>=sum1
then writeln('Yes')
else writeln('No');
end.

type int3 = 1..3;
var
   i, f : int3;
   s : longint;
   a, x : array [int3] of longint;
begin
  for i := 1 to 3 do
    read(a[i]);
  for i := 1 to 3 do
    read(x[i]);
  for i := 1 to 3 do
  begin
    while a[i] > x[i] do
    begin
      inc(s);
      dec(a[i], 2);
    end
  end;
  for i := 1 to 3 do
  begin
    s := s - x[i] + a[i]
  end;
  if s >= 0 then writeln('Yes') else writeln('No');
end.

program zzzzz;
var a,b,c,x,y,z,s:longint;
begin
  read(a,b,c,x,y,z);
  s:=0;
  if a-x>0 then s:=s+(a-x) div 2
           else s:=s+a-x;
  if b-y>0 then s:=s+(b-y) div 2
           else s:=s+b-y;
  if c-z>0 then s:=s+(c-z) div 2
           else s:=s+c-z;
  if s>=0 then write('Yes')
          else write('No');

end.

Var a,b,c,a1,b1,c1,s:longint;
    Begin
     read (a,b,c);
     read(a1,b1,c1);
     s:=0;
      if a>=a1 then s:=s+(a-a1) div 2;
      if b>=b1 then s:=s+(b-b1) div 2;
      if c>=c1 then s:=s+(c-c1) div 2;
      if a<a1 then s:=s-((a1-a));
      if b<b1 then s:=s-((b1-b));
      if c<c1 then s:=s-((c1-c));
      if s>=0 then writeln ('Yes')
      else writeln('No');
      End.

var d1,d2,d3,k,a1,a2,a3,b1,b2,b3:integer;
begin
readln(a1,a2,a3);
readln(b1,b2,b3);
if (a1>=b1)and(a2>=b2)and(a3>=b3) then
writeln('YES') else
begin
d1:=a1-b1;
d2:=a2-b2;
d3:=a3-b3;
if d1>0 then d1:=d1 div 2;
if d2>0 then d2:=d2 div 2;
if d3>0 then d3:=d3 div 2;
k:=d1+d2+d3;
if k<0 then writeln('NO');
if k>=0 then writeln('YES');
end;
readln;
end.

const fi='';//335A.inp';
        fo='';

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

procedure xuli;
var tmp,tmp1:longint;
begin
        tmp:=0;
        tmp1:=0;
        if (a>x+1) then tmp:=tmp+(a-x) div 2;
        if (b>y+1) then tmp:=tmp+(b-y) div 2;
        if (c>z+1) then tmp:=tmp+(c-z) div 2;
        if (x>a) then tmp1:=tmp1+x-a;
        if (y>b) then tmp1:=tmp1+y-b;
        if (z>c) then tmp1:=tmp1+z-c;
        if (tmp>=tmp1) then writeln('YES')
        else writeln('NO');
end;

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

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

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

var a,b,c,x,y,z,k:integer;
begin
read(a,b,c,x,y,z);
k:=0;
while (a>x) and (x+1<>a) do begin
a:=a-2;
k:=k+1;
end;
while (b>y) and (y+1<>b) do begin
b:=b-2;
k:=k+1;
end;
while (c>z) and (z+1<>c) do begin
c:=c-2;
k:=k+1;
end;
If a<x then
while (a<x) and (k>0) do begin
a:=a+1;
k:=k-1;
end;
If b<y then
while (b<y) and (k>0) do begin
b:=b+1;
k:=k-1;
end;
If c<z then
while (c<z) and (k>0) do begin
c:=c+1;
k:=k-1;
end;
if (a>=x) and (b>=y) and (c>=z) then
write('Yes')
else
write('No');
end.

{$mode objfpc}
{$coperators on}
{$macro on}
uses math;
const
     fin   ='';
     fou   ='';
type
     pair = record
          fi,se     :longint;
     end;
var
     a,b,c     ,x,y,z    :longint;
procedure enter;
begin
     readln(a,b,c);
     readln(x,y,z);
end;
procedure solve;
var
     u,v  :longint;
begin
     u:=0;
     v:=0;
     if a>=x then u+=((a-x) div 2)
     else v+=(x-a);
     if b>=y then u+=((b-y) div 2)
     else v+=(y-b) ;
     if c>=z then u+=((c-z) div 2)
     else v+=(z-c) ;
     if (u>=v) then
     begin
          writeln('YES');
     end
     else writeln('NO');
end;

BEGIN
     assign(input,fin);   reset(input);
     assign(output,fou);  rewrite(output);

     enter;
     solve;

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

var a,b,c,x,y,z,s,s1:longint;
begin
readln(a,b,c);
readln(x,y,z);
                s:=0;s1:=0;
                if a>=x then s:=(a-x) div 2+s ;
                 if b>=y then s:=(b-y) div 2+s;
                 if c>=z then s:=(c-z) div 2 +s;
                 if a<=x then s1:=(x-a) +s1 ;
                 if b<=y then s1:=(y-b) +s1;
                 if c<=z then s1:=(z-c)  +s1;
                 if s>=s1 then writeln('Yes')
                          else writeln('No');

                     end.

var
 a,b,c,x,y,z,t:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then
  inc(t,(a-x)div 2);
 if b>y then
  inc(t,(b-y) div 2);
 if c>z then
  inc(t,(c-z) div 2);

 if a<x then
  dec(t,x-a);
 if b<y then
  dec(t,y-b);
 if c<z then
  dec(t,z-c);
 if t>=0 then writeln('Yes')else writeln('No');
end.

var i,n,a,b,c,a1,b1,c1,ans,r,otv:longint;
begin
readln(a,b,c);
readln(a1,b1,c1);
if (a>a1) then
                begin
                r:=abs(a-a1);
                a:=a-r;
                ans:=ans+(r div 2);
                end;
if (b>b1) then
                begin
                r:=abs(b-b1);
                b:=b-r;
                ans:=ans+(r div 2);
                end;
if (c>c1) then
                begin
                r:=abs(c-c1);
                c:=c-r;
                ans:=ans+(r div 2);
                end;
otv:=abs(a-a1)+abs(b-b1)+abs(c-c1);
if (otv<=ans) then writeln('Yes') else writeln('No');

end.

VAR a,b,c,a1,b1,c1,x,z,y:longint;
begin
  read(a,b,c,a1,b1,c1);
  x:=a-a1;y:=b-b1;z:=c-c1;
  if x>0 then x:=x div 2;
  if y>0 then y:=y div 2;if z>0 then z:=z div 2;
  if x+y+z>=0 then write('Yes') else write('No');
end.

var a,b,c,a1,b1,c1,x,z,y:longint;
begin
read(a,b,c,x,y,z);
a1:=a-x;
b1:=b-y;
c1:=c-z;
if a1>0 then a1:=a1 div 2;
if b1>0 then b1:=b1 div 2;
if c1>0 then c1:=c1 div 2;
if a1+b1+c1>=0 then
write('Yes')
else write('No');
end.

program Project151215;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Math;

var
  a,b,c,x,y,z,da,db,dc,k:int64;
begin
 // Reset(Input,'input.txt');
 // Rewrite(output,'output.txt');
  readln(a,b,c);
  read(x,y,z);
  da:=Max(0,a-x);
  db:=Max(0,b-y);
  dc:=Max(0,c-z);
  k:=(da div 2) + (db div 2) + (dc div 2);

  da:=Max(0,x-a);
  db:=Max(0,y-b);
  dc:=Max(0,z-c);

  if da+db+dc<=k
  then write('Yes')
  else write('No')

end.

var a,b,c,x,y,z,r1,r2,r3,k:integer;
begin
read(a,b,c,x,y,z);
r1:=a-x; r2:=b-y; r3:=c-z;
if r1>r2 then begin
 k:=r1; r1:=r2; r2:=k;
end;
if r2>r3 then begin
 k:=r2; r2:=r3; r3:=k;
end;
if r1>r2 then begin
 k:=r1; r1:=r2; r2:=k;
end;
while (r3>=0) and (r1<=0) do begin
 r1:=r1+1;
 r3:=r3-2;
end;
while (r3>=0) and (r2<=0) do begin
 r2:=r2+1;
 r3:=r3-2;
end;
while (r2>=0) and (r1<=0) do begin
 r1:=r1+1;
 r2:=r2-2;
end;
if (r2<0) or (r1<0) then write('No')
else write('Yes');
end.

var a1, a2, a3, b1, b2, b3, n: integer;
begin
n:=0;
read (a1, a2, a3, b1, b2, b3);
if b1>a1 then n:=n+b1-a1;
if b2>a2 then n:=n+b2-a2;
if b3>a3 then n:=n+b3-a3;
if ((a1>b1) and (a2>b2)) and (n<=((a1-b1) div 2 + (a2-b2) div 2)) then write ('Yes')
else
if ((a1>b1) and (a3>b3)) and (n<=((a1-b1) div 2 + (a3-b3) div 2)) then write ('Yes')
else
if ((a2>b2) and (a3>b3)) and (n<=((a2-b2) div 2 + (a3-b3) div 2)) then write ('Yes')
else
if (a1>b1) and ((a1-b1) div 2 >= n) then write ('Yes')
else
if (a2>b2) and ((a2-b2) div 2 >= n) then write ('Yes')
else
if (a3>b3) and ((a3-b3) div 2 >= n) then write ('Yes')
else
if (a1=b1) and (a2=b2) and (a3=b3) then write ('Yes')
else write ('No'); end.

var a,b,c,x,y,z,k:integer;
begin
     read(a,b,c);
     read(x,y,z);
     if a>=x then k:=((a-x) div 2) else k:=a-x;
     if b>=y then k:=k+((b-y)div 2) else k:=k-(y-b);
     if c>=z then k:=k+((c-z) div 2) else k:=k-(z-c);
     if k<0 then writeln('No') else writeln('Yes');
end.

{$mode objfpc}
var
        thua, thieu, x, y, z, a, b, c: integer;

begin
        readln(a, b, c);
        readln(x, y, z);
        if a-x >= 0 then thua := thua + (a-x) div 2
        else thieu := thieu + x-a;
        if b-y >=0 then thua := thua + (b-y) div 2
        else thieu :=thieu + y-b;
        if c-z >=0 then thua := thua + (c-z) div 2
        else thieu := z-c + thieu;
      //  writeln(thua); writeln(thieu);
        if thua >= thieu then writeln('Yes') else
        writeln('No');
end.

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

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

 f:=true;

 while(f) do begin
  f:=false;
  if(a<x)and(b-2>=y) then
  begin
    dec(b,2);
    inc(a);
    f:=true;
  end;

  if(a<x)and(c-2>=z) then
  begin
    dec(c,2);
    inc(a);
    f:=true;
  end;

  if(b<y)and(a-2>=x) then
  begin
    dec(a,2);
    inc(b);
    f:=true;
  end;

  if(b<y)and(c-2>=z) then
  begin
    dec(c,2);
    inc(b);
    f:=true;
  end;

  if(c<z)and(b-2>=y) then
  begin
    dec(b,2);
    inc(c);
    f:=true;
  end;

  if(c<z)and(a-2>=x) then
  begin
    dec(a,2);
    inc(c);
    f:=true;
  end;
 end;

 if(a>=x)and(b>=y)and(c>=z) then write('Yes')
 else write('No');
END.

uses math;
var
 a,b,c,x,y,z,k1,k2,k3,k:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 inc(k,max(0,x-a));
 inc(k1,max(0,a-x));
 inc(k,max(0,y-b));
 inc(k2,max(0,b-y));
 inc(k,max(0,z-c));
 inc(k3,max(0,c-z));
 dec(k,k1 div 2);
 dec(k,k2 div 2);
 dec(k,k3 div 2);
 if k<=0 then writeln('Yes')else writeln('No');
end.

var a,b,c,x,y,z:longint;
begin
read(a,b,c,x,y,z);
while (a>x) and (b<y) do begin
a:=a-2;
b:=b+1;
end;
while (a>x) and (c<z) do begin
a:=a-2;
c:=c+1;
end;
while (b>y) and (c<z) do begin
b:=b-2;
c:=c+1;
end;
while (b>y) and (a<x) do begin
b:=b-2;
a:=a+1;
end;
while (c>z) and (a<x) do begin
c:=c-2;
a:=a+1;
end;
while (c>z) and (b<y) do begin
c:=c-2;
b:=b+1;
end;
if (a>(x-1))and(b>(y-1))and(c>(z-1)) then write('Yes')
else write('No');
end.

uses math;
var a,b,c,tra,vis,x,y,z,k1,k:longint;
d:array[0..5] of longint;
f:array[0..5] of longint;

 begin
  read(a,b,c);
  read(x,y,z);
  if (a<x) then
   begin
    inc(k);
   d[k]:=x-a;
   end
  else
   begin
    inc(k1);
    f[k1]:=a-x;
   end;

  if (b<y) then
   begin
    inc(k);
   d[k]:=y-b;
   end
  else
   begin
    inc(k1);
    f[k1]:=b-y;
   end;

   if (c<z) then
   begin
    inc(k);
   d[k]:=z-c;
   end
  else
   begin
    inc(k1);
    f[k1]:=c-z;
   end;
  if (k=3) then writeln('No') else
  if (k=0) then writeln('Yes') else
   if k=1 then
    begin
     if f[1] div 2 + f[2] div 2 >=d[1] then writeln('Yes') else writeln('No');
     end
    else
     begin
      if f[1] div 2>=d[1]+d[2] then writeln('Yes') else writeln('No');
     end;
  end.

Var a,b,c,n,m,k,ns:longint;
  begin
    read(a,b,c);
    read(n,m,k);
    if a>=n then begin
                  a:=a-n;
                  n:=0;
                  ns:=a div 2;
                end
            else n:=n-a;
    if b>=m then begin
                  b:=b-m;
                  m:=0;
                  ns:=ns+(b div 2);
                end
            else m:=m-b;
    if c>=k then begin
                  c:=c-k;
                  k:=0;
                  ns:=ns+(c div 2);
                end
            else k:=k-c;
    if (n+k+m)<=ns then writeln('Yes')
    else writeln('No');
  end.

uses math;
var a, _a : array[1..3] of longint;
      j, i, mx, io: longint;
begin
        for i:=1 to 3 do read(A[i]);
        for i:=1 to 3 do begin read(_a[i]); a[i]:=a[i]-_a[i]; end;
        for i:=1 to 3 do if a[i]<0 then
         begin
                for j:=1 to 3 do while (a[j]>=2)and(a[i]<0) do
                        begin
                                a[j]:=a[j]-2;
                                a[i]:=a[i]+1;
                        end;
                if a[i]<0 then begin writeln('No'); halt; end;
         end;
        writeln('Yes');
end.

const fi = '';
      fo = '';
var f2 : text;
    x, y, z : longint;
procedure process;
 var f1 : text;
     tg : longint;
 begin
        assign(f1,fi); reset(f1);
        assign(f2,fo); rewrite(f2);
        readln(f1,x,y,z);
        read(f1,tg);
        dec(x,tg);
        read(f1,tg);
        dec(y,tg);
        read(f1,tg);
        dec(z,tg);
        while (x < 0) and (y >= 2) do
          begin
                inc(x);
                dec(y,2);
          end;
        while (x < 0) and (z >= 2) do
          begin
                inc(x);
                dec(z,2);
          end;
        while (y < 0) and (x >= 2) do
          begin
                inc(y);
                dec(x,2);
          end;
        while (y < 0) and (z >= 2) do
          begin
                inc(y);
                dec(z,2);
          end;
        while (z < 0) and (x >= 2) do
          begin
                inc(z);
                dec(x,2);
          end;
        while (z < 0) and (y >= 2) do
          begin
                inc(z);
                dec(y,2);
          end;
        if (x < 0) or (y < 0) or (z < 0) then write(f2,'No') else write(f2,'Yes');
        close(f1); close(f2);
 end;
begin
        process;
end.

program z1;
var a1,b1,c1,a2,b2,c2,d,i,j,k,l,m,n,cnt,need:longint;

Function max(x,y:longint):longint;
begin
if x>y then max:=x else max:=y;
end;

begin
//assign(input,'d:\nisht\free\input.txt'); reset(input);
//assign(output,'d:\nisht\free\output.txt'); rewrite(output);
readln(a1,b1,c1);
readln(a2,b2,c2);
cnt:=cnt+max(0,(a1-a2) div 2);
need:=need+max(0,a2-a1); if (a1-a2>0) and (a2-a1 mod 2=1) then  begin inc(cnt); inc(need); end;
cnt:=cnt+max(0,(b1-b2) div 2);
need:=need+max(0,b2-b1); if (b1-b2>0) and (b2-b1 mod 2=1) then  begin inc(cnt); inc(need); end;
cnt:=cnt+max(0,(c1-c2) div 2);
need:=need+max(0,c2-c1); if (c1-c2>0) and (c2-c1 mod 2=1) then  begin inc(cnt); inc(need); end;

if cnt>=need then write('Yes') else write('No');
end.

uses math;
const
        fi='';
        fo='';
        maxn=4;
        maxc=1000000000;
var
        a,b,d:array[0..maxn] of longint;
        sum,ss:longint;
{-------------------------}
procedure openfiles;
begin
        assign(input,fi);
        reset(input);
        assign(output,fo);
        rewrite(output);
end;
{------------------------}
procedure closefiles;
begin
        close(input);
        close(output);
end;
{-------------------------}
procedure nhap;
var
        i:longint;
begin
        for i:=1 to 3 do read(a[i]);
        for i:=1 to 3 do read(b[i]);
end;
{-------------------------}
procedure xuly;
var
        i:longint;
begin
        for i:=1 to 3 do
        begin
                d[i]:=a[i]-b[i];
                sum:=sum+max(0,d[i] div 2);
                if d[i] < 0 then ss:=ss+d[i];
        end;
        if sum+ss >= 0 then writeln('YES')  else writeln('NO');
end;
{-------------------------}
BEGIN
        openfiles;
        nhap;
        xuly;
        closefiles;
END.

var a,b:array[1..3]of longint;
    t,i:longint;
begin
readln(a[1],a[2],a[3]);
readln(b[1],b[2],b[3]);
t:=0;
for i:=1 to 3 do if a[i]-b[i]>0 then t:=t+(a[i]-b[i])div 2
                                else t:=t+(a[i]-b[i]);
if t>=0 then write('Yes')
       else write('No');
end.

var a,b,c,x,y,z,s,s1:longint;
begin
readln(a,b,c);
readln(x,y,z);
                s:=0;s1:=0;
                if a>=x then s:=(a-x) div 2+s ;
                 if b>=y then s:=(b-y) div 2+s;
                 if c>=z then s:=(c-z) div 2 +s;
                 if a<=x then s1:=(x-a) +s1 ;
                 if b<=y then s1:=(y-b) +s1;
                 if c<=z then s1:=(z-c)  +s1;
                 if s>=s1 then writeln('Yes')
                          else writeln('No');

                     end.

var a,b,c,x,y,z,sum,tg:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a-x > 0 then
  sum:=sum + ((a-x) div 2)
 else
  tg:=tg+x-a;
 if b-y > 0 then sum:=sum + ((b-y) div 2)
 else
  tg:=tg+y-b;
 if c-z > 0 then sum:=sum + ((c-z) div 2)
  else
   tg:=tg+z-c;
 if sum >= tg then write('Yes')
  else write('No');
end.

var a,b,c,x,y,z:longint;
    fa,fb,fc:longint;

begin
  readln(a,b,c);
  readln(x,y,z);
  fa:=a-x;
  fb:=b-y;
  fc:=c-z;
  if fa>=2
    then
      begin
        while (fb<0)and(fa>=2) do
          begin
            dec(fa,2);
            inc(fb);
          end;
        while (fc<0)and(fa>=2) do
          begin
            dec(fa,2);
            inc(fc);
          end;
      end;
  if fb>=2
    then
      begin
        while (fa<0)and(fb>=2) do
          begin
            dec(fb,2);
            inc(fa);
          end;
        while (fc<0)and(fb>=2) do
          begin
            dec(fb,2);
            inc(fc);
          end;
      end;
  if fc>=2
    then
      begin
        while (fa<0)and(fc>=2) do
          begin
            dec(fc,2);
            inc(fa);
          end;
        while (fb<0)and(fc>=2) do
          begin
            dec(fc,2);
            inc(fb);
          end;
      end;
  if (fa>=0)and(fb>=0)and(fc>=0)
    then writeln('Yes')
    else writeln('No');
end.

type int3 = 1..3;
var
   i, f : int3;
   s : longint;
   a, x : array [int3] of longint;
begin
  for i := 1 to 3 do
    read(a[i]);
  for i := 1 to 3 do
    read(x[i]);
  for i := 1 to 3 do
  begin
    while a[i] > x[i] do
    begin
      inc(s);
      dec(a[i], 2);
    end
  end;
  for i := 1 to 3 do
  begin
    s := s - x[i] + a[i]
  end;
  if s >= 0 then writeln('Yes') else writeln('No');
end.

  Const N = 3;
  var Have , Need : Array [ 1 .. 3 ] of Int64;

  i : LongInt;
  free , needs : Int64;
begin
  for i := 1 to N do
    read ( Have[i] ) ;
  for i := 1 to N do
    read ( Need[i] ) ;

  for i := 1 to N do
    if ( Have[i] < Need[i] ) then
      needs := needs + ( Need[i] - Have[i] ) ;

  for i := 1 to N do
    if ( Have[i] > Need[i] ) then
      free := free + (Have[i] - Need[i]) div 2 ;

  if ( free >= needs ) then
    writeLn ( 'Yes' )
  else
    writeLn ( 'No' ) ;
end.

uses math;
var a,b,c,x,y,z,a1,b1,c1,s,k:int64;

begin
    read(a,b,c);
    read(x,y,z);
    a1:=a-x;
    b1:=b-y;
    c1:=c-z;
    if (a1>0) and (b1>0) and (c1>0 ) then begin writeln('Yes');exit;end;
    if (a1<0) and (b1<0) and (c1<0) then begin writeln('No');exit;end;
    if a1>0 then s:=s+a1 div 2;
    if b1>0 then s:=s+b1 div 2;
    if c1>0 then s:=s+c1 div 2;
    if a1<0 then k:=k+a1;
    if b1<0 then inc(k,b1);
    if c1<0 then inc(k,c1);
    if (s>=abs(k)) then begin writeln('Yes');exit;end;
    writeln('No');
end.

Program _606A;
var
  a, b, c, d, e, x, y, z : longint;
begin
  read(a, b, c, x, y, z);
  a := a - x; b := b - y; c := c - z; d := 0; e := 0;
  if a > 0
     then d := d + a div 2
     else e := e + a;
  if b > 0
     then d := d + b div 2
     else e := e + b;
  if c > 0
     then d := d + c div 2
     else e := e + c;
  if d < -e
     then write('No')
     else write('Yes');
end.

uses math;
var
  a,b,c,x,y,z,s1,s2,i : longint;

  function gt(x,y : longint) : longint;
    begin
      if y > x then exit(0) else exit((x-y) div 2);
    end;

begin
  readln(a,b,c,x,y,z);
  if a >= x then begin
    s1:=gt(a,x);
    if b < y then begin s2:=min(y-b,s1); inc(b,s2); s1:=s1-s2; dec(a,s2*2); end;
    if c < z then begin s2:=min(z-c,s1); inc(c,s2); s1:=s1-s2; dec(a,s2*2); end;
  end;
  if b >= y then begin
    s1:=gt(b,y);
    if a < x then begin s2:=min(x-a,s1); inc(a,s2); s1:=s1-s2; dec(b,s2*2); end;
    if c < z then begin s2:=min(z-c,s1); inc(c,s2); s1:=s1-s2; dec(b,s2*2); end;
  end;
  if c >= z then begin
    s1:=gt(c,z);
    if b < y then begin s2:=min(y-b,s1); inc(b,s2); s1:=s1-s2; dec(c,s2*2); end;
    if a < x then begin s2:=min(x-a,s1); inc(a,s2); s1:=s1-s2; dec(c,s2*2); end;
  end;
  if (a >= x) and (b >= y) and (c >= z) then writeln('Yes') else writeln('No');
end.

{$mode objfpc}

var
  a,b,c,x,y,z,thua,thieu:int64;

begin
  read(a,b,c);
  read(x,y,z);
  if a-x >= 0 then thua:=thua+(a-x) div 2
  else thieu:=thieu+x-a;
  if b-y >= 0 then thua:=thua+(b-y) div 2
  else thieu:=thieu+y-b;
  if c-z >= 0 then thua:=thua+(c-z) div 2
  else thieu:=thieu+z-c;
  if thua >= thieu then write('Yes')
  else write('No');
end.

        var
           a:array[1..2,1..3]of integer;
           i,x:integer;
        begin
             for i:=1 to 3 do read(a[1][i]);
             for i:=1 to 3 do
             begin
                  read(a[2][i]);
                  if a[1][i]-a[2][i]>0 then x:=x+((a[1][i]-a[2][i])div 2)
                  else x:=x+(a[1][i]-a[2][i]);
             end;
             if x>=0 then writeln('yes')
             ELSE WRITELN('no');
             END.

var
 n,m,k,n1,m1,k1,w,s:longint;
begin
 readln(n,m,k);
 readln(n1,m1,k1);
 if n<n1 then inc(w,abs(n-n1)) else inc(s,(n-n1)div 2);
 if m<m1 then inc(w,abs(m-m1)) else inc(s,(m-m1)div 2);
 if k<k1 then inc(w,abs(k-k1)) else inc(s,(k-k1)div 2);
 if w<=s then writeln('Yes') else writeln('No');
end.

program arsofurs;
var tt,t,y,z,a,b,c,i,ind1,ind2,ind3,n,x,m:longint;
begin
readln(a,b,c);
readln(x,y,z); t:=1;tt:=-1;

while(a<x)or(b<y)or(c<z)do
begin

if (a<=x)and(b<=y)and(c<=z)then begin writeln('No');halt;end;
if t=0 then begin writeln('No');halt;end; t:=0;
 while(a>x)do
 begin
 if a-2<0 then break;
 if a-20>x then begin inc(t);a:=a-20;ind1:=ind1+10;end else
  begin
  a:=a-2;inc(ind1);inc(t);
  end;
 end;

  while(b>y)do
 begin

 if b-2<0 then break;
 if b-20>y then begin inc(t); b:=b-20;ind2:=ind2+10;end else
  begin
  b:=b-2;inc(ind2);
  inc(t);
  end;
 end;

  while(c>z)do
 begin
 if c-2<0 then break;
 if c-20>z then begin inc(t);c:=c-20;ind3:=ind3+10;end else
  begin
  c:=c-2;inc(ind3);inc(t);
  end;
 end;
tt:=-5;
while(ind1<>0)do
begin
if ind1=tt then break;
tt:=ind1;
if a<x then begin inc(a);dec(ind1);end;
if ind1=0 then break;
if b<y then begin inc(b);dec(ind1);end;
if ind1=0 then break;
if c<z then begin inc(c);dec(ind1);end;
if ind1=0 then break;
end;

tt:=-5;
while(ind2<>0)do
begin
if ind2=tt then break;
tt:=ind2;
if a<x then begin inc(a);dec(ind2);end;
if ind2=0 then break;
if b<y then begin inc(b);dec(ind2);end;
if ind2=0 then break;
if c<z then begin inc(c);dec(ind2);end;
if ind2=0 then break;
end;

tt:=-5;
while(ind3<>0)do
begin
if ind3=tt then break;
tt:=ind3;
if a<x then begin inc(a);dec(ind3);end;
if ind3=0 then break;
if b<y then begin inc(b);dec(ind3);end;
if ind3=0 then break;
if c<z then begin inc(c);dec(ind3);end;
if ind3=0 then break;
end;

a:=a+ind2;
b:=b+ind3+ind1;
ind1:=0;ind2:=0;ind3:=0;

end;
writeln('Yes');

end.

var
 a,b,c,x,y,z,res:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then inc(res,(a-x)div 2);
 if b>y then inc(res,(b-y)div 2);
 if c>z then inc(res,(c-z)div 2);
 if a<x then dec(res,x-a);
 if b<y then dec(res,y-b);
 if c<z then dec(res,z-c);
 if res>=0 then writeln('Yes') else writeln('No')
end.

{$mode objfpc}
program faf;
var  a,b:Array[1..3] of integer;
     make, i, use :integer;
begin
   readln(a[1], a[2], a[3]);
   readln(b[1], b[2], b[3]);
   make :=0;
   use  :=0;
   for i:=1 to 3 do
      begin
          if a[i] >= b[i] then inc(make, (a[i]- b[i]) div 2)
          else inc(use, b[i]-a[i]);
      end;
   if make >= use then writeln('Yes') else writeln('No');
end.

var
 a,b,c,x,y,z,t:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then
  inc(t,(a-x)div 2);
 if b>y then
  inc(t,(b-y) div 2);
 if c>z then
  inc(t,(c-z) div 2);

 if a<x then
  dec(t,x-a);
 if b<y then
  dec(t,y-b);
 if c<z then
  dec(t,z-c);
 if t>=0 then writeln('Yes')else writeln('No');
end.

var
need,a,b,c,x,y,z:longint;
begin
readln(a,b,c);
readln(x,y,z);

if a>x then begin
    dec(a,x);
    x:=0;
end
else begin

    dec(x,a);
    a:=0;
end;

if b>y then begin
    dec(b,y);
    y:=0;
end
else begin

    dec(y,b);
    b:=0;
end;

if c>z then begin
    dec(c,z);
    z:=0;
end
else begin

    dec(z,c);
     c:=0;
end;
need:=x+y+z;
//writeln(need);
need:=need-(a div 2+ b div 2+ c div 2);
if need<=0 then writeln('Yes')
else
writeln('No');
end.

var
  a, b, c, a1, b1, c1, q, q1: longint;

begin
  read(a, b, c, a1, b1, c1);
  a := a - a1;
  b := b - b1;
  c := c - c1;
  if a > 0 then q := a div 2
  else q1 := q1 + a;
  if b > 0 then q := q + b div 2
  else q1 := q1 + b;
  if c > 0 then q := q + c div 2
  else q1 := q1 + c;
  q1:=abs(q1);
  if q >= q1 then write('Yes')
  else write('No');

end.

var a,b,c,x,y,z,s,s1:longint;
begin
readln(a,b,c);
readln(x,y,z);
                s:=0;s1:=0;
                if a>=x then s:=(a-x) div 2+s ;
                 if b>=y then s:=(b-y) div 2+s;
                 if c>=z then s:=(c-z) div 2 +s;
                 if a<=x then s1:=(x-a) +s1 ;
                 if b<=y then s1:=(y-b) +s1;
                 if c<=z then s1:=(z-c)  +s1;
                 if s>=s1 then writeln('Yes')
                          else writeln('No');

                     end.

VAR a,b,c,a1,b1,c1,x,z,y:longint;
begin
  read(a,b,c,a1,b1,c1);
  x:=a-a1;y:=b-b1;z:=c-c1;
  if x>0 then x:=x div 2;
  if y>0 then y:=y div 2;if z>0 then z:=z div 2;
  if x+y+z>=0 then write('Yes') else write('No');
end.

var k1,k2,k3,n1,n2,n3,a,b,c,x,y,z:int64;
begin
readln(a,b,c);
read(x,y,z);
if a<x then k1:=x-a else n1:=(a-x) div 2;
if b<y then k2:=y-b else n2:=(b-y) div 2;
if c<z then k3:=z-c else n3:=(c-z) div 2;
if n1+n2+n3<k1+k2+k3 then write('No') else write('Yes');
end.

type int3 = 1..3;
var
   i, f : int3;
   s : longint;
   a, x : array [int3] of longint;
begin
  for i := 1 to 3 do
    read(a[i]);
  for i := 1 to 3 do
    read(x[i]);
  for i := 1 to 3 do
  begin
    while a[i] > x[i] do
    begin
      inc(s);
      dec(a[i], 2);
    end
  end;
  for i := 1 to 3 do
  begin
    s := s - x[i] + a[i]
  end;
  if s >= 0 then writeln('Yes') else writeln('No');
end.

var a,b:array[1..3]of longint;
    t,i:longint;
begin
readln(a[1],a[2],a[3]);
readln(b[1],b[2],b[3]);
t:=0;
for i:=1 to 3 do if a[i]-b[i]>0 then t:=t+(a[i]-b[i])div 2
                                else t:=t+(a[i]-b[i]);
if t>=0 then write('Yes')
       else write('No');
end.

var
 k,n,m,a,b,c,x,y,z:longint;
procedure cool;
begin
 writeln('Yes');
 halt;
end;
procedure error;
begin
 writeln('No');
 halt;
end;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then inc(k,(a-x) div 2)else inc(m,x-a);
 if b>y then inc(k,(b-y) div 2)else inc(m,y-b);
 if c>z then inc(k,(c-z) div 2)else inc(m,z-c);
 if k>=m then cool else error;
end.

var a,b,c,x,y,z,k:integer;
begin
     read(a,b,c);
     read(x,y,z);
     if a>=x then k:=((a-x) div 2) else k:=a-x;
     if b>=y then k:=k+((b-y)div 2) else k:=k-(y-b);
     if c>=z then k:=k+((c-z) div 2) else k:=k-(z-c);
     if k<0 then writeln('No') else writeln('Yes');
end.

program z1;
var a,b,c,d,i,j,k,l,m,n:longint; count1,count2,st,x,y:int64;
begin
// assign(input,'d:\programs\input.txt'); reset(input);
// assign(output,'d:\programs\output.txt'); rewrite(output);
for i:=1 to 6 do
begin
read(a); b:=b+a;
end;
if b mod 3=0 then write('Yes') else write('No');
end.

var m,n,i:integer;
begin
read (n);
for i:=1 to n do begin
read(m);
while m>0 do begin
write ('p');
if m-1>0 then begin
if i<=n then begin
write ('RL');
end
else
write ('RL');
end
else if i<n then write ('R');
m:=m-i;
end;
end;
end.

program ex;
 var a,b,c,x,y,z,ma,mb,mc,mia,mib,mic:longint;
begin
readln(input,a,b,c);
readln(input,x,y,z);
ma:=a-x; mia:=0; mib:=0; mic:=0; if ma>=0 then mia:=0-ma else begin mia:=ma; ma:=0; end;
mb:=b-y; if mb>=0 then mib:=0-mb else begin mib:=mb; mb:=0; end;
mc:=c-z; if mc>=0 then mic:=0-mc else begin mic:=mc; mc:=0; end;
if ma div 2 +mb div 2+mc div 2>=abs(mia+mib+mic) then writeln(output,'Yes') else writeln(output,'No');
end.

Var a,b,c,x,y,z,s,s1:longint;
  Begin
    readln(a,b,c);
    readln(x,y,z);
    if a+b+c<=x+y+z then writeln('No')
    else begin
      if a>x then s:=s+ (a-x) div 2;
       if b>y then s:=s+(b-y) div 2;
       if c>z then s:=s+(c-z) div 2;
        if a<x then s1:=s1+(x-a) ;
         if b<y then s1:=s1+(y-b) ;
          if c<z then s1:=s1+(z-c) ;
    if s>=s1 then writeln('Yes')
    else writeln('No');
    end;
End.

var
 k,n,m,a,b,c,x,y,z:longint;
procedure cool;
begin
 writeln('Yes');
 halt;
end;
procedure error;
begin
 writeln('No');
 halt;
end;
begin
 readln(a,b,c);
 readln(x,y,z);
 m:=x+y+z;
 if a>x then inc(k,a-x div 2)else inc(m,x-a);
 if b>y then inc(k,b-y div 2)else inc(m,y-b);
 if c>z then inc(k,c-z div 2)else inc(m,z-c);
 if k>=m then cool else error;
end.

uses Math;
type mass=array[1..1000000] of integer;
var m:mass;d,a1,b1,c1,k,res,n,c,a,b,i,z:integer;
    s:string;
begin
  // assign(input,'d:\delphi\input.txt');
  // assign(output,'d:\delphi\output.txt');
   readln(a,b,c);
   readln(a1,b1,c1);
   if a>a1
   then d:=(a-a1) div 2;
   if b>b1
   then d:=d+(b-b1) div 2;
   if c>c1
   then d:=d+(c-c1) div 2;
   dec(d,max(0,a1-a));
   dec(d,max(0,b1-b));
   dec(d,max(0,c1-c));
   if d<0
   then writeln('No')
   else writeln('Yes');
end.

const fi='';
      fo='';
var a,b,s: array[1..3] of longint;
    i,temp: longint;
    lc:boolean;
    f, g: text;
begin
    assign(f,fi); assign(g,fo);
    reset(f); rewrite(g);
    readln(f,a[1],a[2],a[3]);
    readln(f,b[1],b[2],b[3]);
    lc:=true;
    for i:=1 to 3 do
    begin
      s[i]:=a[i]-b[i];
      if s[i]<0 then
        begin
          lc:=false;
          s[i]:=2*s[i];
        end;
    end;
    for i:=1 to 3 do
      temp:=temp+s[i];
    if temp>0 then writeln(g,'Yes')
    else writeln(g,'No');
    close(f); close(g);
end.

var
 a,b,c,x,y,z,k,i: longint;
begin
 readln(a,b,c);
 readln(x,y,z);

 if (a-x) > 0 then inc(k,a-x);
 if (b-y) > 0 then inc(k,b-y);
 if (c-z) > 0 then inc(k,c-z);
 k:=k div 2;
 if x > a then
 if x-a <= k then dec(k,x-a) else begin writeln('No'); halt; end;

 if y > b then
 if y-b <= k then dec(k,y-b) else begin writeln('No'); halt; end;

 if z > c then
 if z-c <= k then dec(k,z-c) else begin writeln('No'); halt; end;

 writeln('Yes');
end.

var
 a,b,c,x,y,z,k,i,a1,b1,c1: longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 a1:=a;
 b1:=b;
 c1:=c;
 while (a1 > x) or (b1 > y) or (c1 > z) do
 begin
  if (a1-x) >= 2 then begin dec(a1,2); inc(k); end else break;
  if (b1-y) >= 2 then begin dec(b1,2); inc(k); end else break;
  if (c1-z) >= 2 then begin dec(c1,2); inc(k); end else break;
 end;

 writeln(k);
 if x > a then
 for i:=1 to x-a do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if y > b then
 forvar
 a,b,c,x,y,z,k: int64;
 i: longint;
begin
 readln(a,b,c);
 readln(x,y,z);

 if (a-x) > 0 then inc(k,a-x);
 if (b-y) > 0 then inc(k,b-y);
 if (c-z) > 0 then inc(k,c-z);
 if x > a then
 for i:=1 to x-a do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;

 if y > b then
 for i:=1 to y-b do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;
 if z > c then
 for i:=1 to z-c do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;
 writeln('Yes');
end. i:=1 to y-b do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if z > c then
 for i:=1 to z-c do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if k < 0 then writeln('No') else writeln('Yes');
end.

program spheres;
var
  a,b,c,x,y,z:integer;
  begin

    readln(a,b,c);
    readln(x,y,z);
   if (a+b+c)>=(x+y+z) then
     begin
       if (a>x) and (b>y) then
         writeln('Yes')
       else if (a>x) and (c>z) then
         writeln('Yes')
       else if (b>y) and (c>z) then
         writeln('Yes')
       else
       writeln('No');
     end
   else writeln('No');

end.

  Const N = 3;
  var Have , Need : Array [ 1 .. 3 ] of Int64;

  i : LongInt;
  free , needs : Int64;
begin
  for i := 1 to N do
    read ( Have[i] ) ;
  for i := 1 to N do
    read ( Need[i] ) ;

  for i := 1 to N do
    if ( Have[i] < Need[i] ) then
      needs := needs + ( Need[i] - Have[i] ) ;

  for i := 1 to N do
    if ( Have[i] > Need[i] ) then
      free := Have[i] - Need[i] div 2 ;

  if ( free >= needs ) then
    writeLn ( 'Yes' )
  else
    writeLn ( 'No' ) ;
end.

const
   tfi='606a.inp';
   tfo='606A.out';

var
   fi, fo: text;
   a, b: array[1..3] of longint;

procedure __;
var
   can, du, i: longint;
begin

   readln( a[1], a[2], a[3]);
   readln(b[1], b[2], b[3]);
   for i:=1 to 3 do
      if a[i]>b[i] then
         du := du+((a[i]-b[i]) div 2)
      else can := can+b[i]-a[i];
   if du>=can then write('YES')
   else write('NO');
end;

procedure _;
begin

end;

BEGIN
   __;
   _;
END.

var a,b,c,a1,b1,c1,res : longint;
begin
        readln(a,b,c);
        readln(a1,b1,c1);
        a:=a1-a;
        b:=b1-b;
        c:=c1-c;
        if a>0 then res:=res+2*a;
        if b>0 then res:=res+2*b;
        if c>0 then res:=res+2*c;
        if (a<0) then
         if ((-a) mod 2=0) then res:=res+a else res:=res +(a-1)+2;
        if (b<0) then
          if ((-b) mod 2=0) then res:=res+b else res:=res +(b-1)+2;
        if (c<0) then
         if ((-c) mod 2=0) then res:=res+c else res:=res +(c-1)+2;
        if res=0 then writeln('Yes') else writeln('No');
end.

Var
    a,b,c,a1,b1,c1,s,s1:longint;
    Begin
     read (a,b,c);
     read(a1,b1,c1);
      if a>=a1 then s:=s+a-a1;
      if b>=b1 then s:=s+b-b1;
      if c>=c1 then s:=s+c-c1;
      if a<a1 then s:=s-(a1-a)*2;
      if b<b1 then s:=s-(b1-b)*2;
      if c<c1 then c:=c-(c1-c)*2;
      if s>=0 then writeln ('Yes')
      else writeln('No');
      End.

var a,b,c,x,y,z,r1,r2,r3,s1,a1,b1:integer;
begin
read(a,b,c);
read(x,y,z);
r1:=a-x;
r2:=b-y;
r3:=c-z;
if ((a-x)>0) and ((b-y)>0)then
a1:=a-x;
b1:=b-y;
s1:=a1+b1+c;
if s1>=z then
write('Yes')
else
if (r1<0) or (r2<0) or (r3<0) then
write('No')
else
if (r1>0) and (r2>0) and (r3>0) then
write('Yes')
end.

{$mode objfpc}
{$coperators on}
{$macro on}
uses math;
const
     fin   ='';
     fou   ='';
type
     pair = record
          fi,se     :longint;
     end;
var
     a,b,c     ,x,y,z    :longint;
procedure enter;
begin
     readln(a,b,c);
     readln(x,y,z);
end;
procedure solve;
var
     u,v  :longint;
begin
     u:=0;
     v:=0;
     if a>x+1 then u+=a-x
     else v+=x-a;
     if b>y+1 then u+=b-y
     else v+=y-b;
     if c>z+1 then u+=c-z
     else v+=z-c;
     if (u div 2>=v) then
     begin
          writeln('YES');
     end
     else writeln('NO');
end;

BEGIN
     assign(input,fin);   reset(input);
     assign(output,fou);  rewrite(output);

     enter;
     solve;

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

program spheres;
var
  a,b,c,x,y,z:integer;
  begin

    readln(a,b,c);
    readln(x,y,z);
   if (a+b+c)>=(x+y+z) then
     begin
       if (a>=x) and (b>=y) then
         writeln('Yes')
       else if (a>=x) and (c>=z) then
         writeln('Yes')
       else if (b>=y) and (c>=z) then
         writeln('Yes')
       else
       writeln('No');
     end
   else writeln('No');

end.

var a, _a : array[1..3] of longint;
        i : longint;
begin
        for i:=1 to 3 do read(A[i]);
        for i:=1 to 3 do read(_a[i]);
        for i:=1 to 3 do if a[i]<_a[i] then
         begin
                if i=2 then begin dec(a[1],_a[i]-a[i]); dec(a[3],_a[i]-a[i]); end;
                if i=1 then begin dec(a[2],_a[i]-a[i]); dec(a[3],_a[i]-a[i]); end;
                if i=3 then begin dec(a[1],_a[i]-a[i]); dec(a[2],_a[i]-a[i]); end;
                inc(a[i], _a[i]-a[i]);
         end;
        for i:=1 to 3 do if a[i]<_a[i] then
         begin

                writeln('No'); halt;
         end;
        writeln('Yes');
end.

program magicspheresa;

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

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

const fi='';
      fo='';
var a,b,c,x,y,z,n,m:longint;

Begin
        assign(input,fi);reset(input);
        readln(a,b,c,x,y,z);
        close(input);

        assign(output,fo);rewrite(output);
        if (a>x) then begin
                if a-x=1 then n:=n+(a-x);
        end else m:=m+x-a;
        if (b>y) then begin
                if b-y=1 then n:=n+(b-y);
        end else m:=m+y-b;
        if (c>z) then begin
                if c-z=1 then n:=n+(c-z);
        end else m:=m+z-c;
        if (n div 2>=m) and (n<>0) then write('YES') else write('NO');
        close(output);
END.

program cf606A;
var a,b,c,x,y,z:int64;

begin
read(a,b,c,x,y,z);
if a>=x then
        begin
        a:=a-x;
        x:=0;
        end
else
        begin
        a:=0;
        x:=x-a;
        end;
if b>=y then
        begin
        b:=b-y;
        y:=0;
        end
else
        begin
        b:=0;
        y:=y-b;
        end;
if c>=z then
        begin
        c:=c-z;
        z:=0;
        end
else
        begin
        c:=0;
        z:=z-c;
        end;

if (x+y+z)<=(a div 2)+(b div 2)+(c div 2) then
        writeln('Yes')
else
        writeln('No');
end.

const fi='';
      fo='';
var a,b,s: array[1..3] of longint;
    i, j, sl, maxa, maxb, temp: longint;
    f, g: text;
begin
    assign(f,fi); assign(g,fo);
    reset(f); rewrite(g);
    readln(f,a[1],a[2],a[3]);
    readln(f,b[1],b[2],b[3]);
    for i:=1 to 3 do
      begin
        s[1]:=s[1]+a[i];
        s[2]:=s[2]+b[i];
      end;
    sl:=abs(s[1]-s[2]);
    for i:=3 downto 2 do
    begin
      maxa:=1; maxb:=1;
      for j:=1 to i do
      begin
        if a[maxa]<a[j] then maxa:=j;
        if b[maxb]<b[j] then maxb:=j;
      end;
      temp:=a[i];
      a[i]:=a[maxa];
      a[maxa]:=temp;
      temp:=b[i];
      b[i]:=b[maxb];
      b[maxb]:=temp;
    end;
    j:=0;
    for i:=1 to 3 do
    begin
      if a[i]>=b[i] then inc(j);
      temp:=temp+a[i]-b[i];
    end;
    if j=1 then writeln(g,'NO')
    else
    begin
      if j=3 then writeln(g,'YES')
      else
        if temp>sl then writeln(g,'YES')
        else writeln(g,'NO');
    end;
    close(f); close(g);
end.

Var
    a,b,c,a1,b1,c1,s,s1:longint;
    Begin
     read (a,b,c);
     read(a1,b1,c1);
      if a>=a1 then s:=s+a-a1;
      if b>=b1 then s:=s+b-b1;
      if c>=c1 then s:=s+c-c1;
      if a<=a1 then s1:=s1-a+a1;
      if b<=b1 then s1:=s1-b+b1;
      if c<=c1 then s1:=s1-c+c1;
      if s div 2>=s1 then writeln('Yes')
      else writeln('No');
      End.

var a,b,c,x,y,z,s,s1:longint;
begin
readln(a,b,c);
readln(x,y,z);
if a+b+c<=x+y+z then writeln('No')
                else begin
                 s:=0;s1:=0;
                if a>x then s:=(a-x) div 2+s ;
                 if b>y then s:=(b-y) div 2+s;
                 if c>z then s:=(c-z) div 2 +s;
                  if a<x then s1:=(x-a) +s1 ;
                 if b<y then s1:=(y-b) +s1;
                 if c<z then s1:=(z-c)  +s1;
                 if s>s1 then writeln('Yes')
                          else writeln('No');
                     end;
                     end.

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

  function gt(x,y : longint) : longint;
    begin
      if y > x then exit(0) else exit((x-y) div 2);
    end;

begin
  readln(a,b,c,x,y,z);
  if a < x then begin
    s1:=gt(b,y); s2:=gt(c,z);
    if s1+s2+a < x then begin writeln('No'); halt; end else begin
      inc(a,s1+s2);
      dec(b,s1*2); dec(c,s2*2);
    end;
  end;
  if b < y then begin
    s1:=gt(a,x); s2:=gt(c,z);
    if s1+s2+b < y then begin writeln('No'); halt; end else begin
      inc(b,s1+s2);
      dec(a,s1*2); dec(c,s2*2);
    end;
  end;
  if c < z then begin
    s1:=gt(b,y); s2:=gt(a,x);
    if s1+s2+c < z then begin writeln('No'); halt; end else begin
      inc(c,s1+s2);
      dec(b,s1*2); dec(a,s2*2);
    end;
  end;
  writeln('Yes');
end.

const fi='';
      fo='';
var a,b,s: array[1..3] of longint;
    i, j, ind, maxa, maxb, temp: longint;
    f, g: text;
begin
    assign(f,fi); assign(g,fo);
    reset(f); rewrite(g);
    readln(f,a[1],a[2],a[3]);
    readln(f,b[1],b[2],b[3]);
    for i:=1 to 3 do
      begin
        s[1]:=s[1]+a[i];
        s[2]:=s[2]+b[i];
      end;
    for i:=3 downto 2 do
    begin
      maxa:=1; maxb:=1;
      for j:=1 to i do
      begin
        if a[maxa]<a[j] then maxa:=j;
        if b[maxb]<b[j] then maxb:=j;
      end;
      temp:=a[i];
      a[i]:=a[maxa];
      a[maxa]:=temp;
      temp:=b[i];
      b[i]:=b[maxb];
      b[maxb]:=temp;
    end;
    j:=0;
    ind:=abs(s[1]-s[2]);
    temp:=0;
    for i:=1 to 3 do
      if a[i]>=b[i] then inc(j);
    if j=3 then writeln(g,'YES')
    else
    begin
      j:=0;
      for i:=1 to 3 do
      begin
        if a[i]>b[i] then inc(j)
        else ind:=ind;
        temp:=temp+a[i]-b[i];
      end;
      if j=1 then writeln(g,'NO')
      else
      begin
        if j=3 then writeln(g,'YES')
        else
          if temp>ind then writeln(g,'YES')
          else writeln(g,'NO');
      end;
    end;
    close(f); close(g);
end.

program z1;
var a,b,c,d,i,j,k,l,m,n:longint; count1,count2,st,x,y:int64;
begin
// assign(input,'d:\programs\input.txt'); reset(input);
// assign(output,'d:\programs\output.txt'); rewrite(output);
for i:=1 to 6 do
begin
read(a); b:=b+a;
end;
if b mod 3=0 then write('Yes') else write('No');
end.

Var a,b,c,x,y,z,s,s1:longint;
  Begin
    readln(a,b,c);
    readln(x,y,z);
    if (a+b+c=0) or (x+y+z=0) then writeln('Yes')
    else begin
    if a+b+c<=x+y+z then writeln('No')
    else begin
      if a>x then s:=s+ (a-x) div 2;
       if b>y then s:=s+(b-y) div 2;
       if c>z then s:=s+(c-z) div 2;
        if a<x then s1:=s1+(x-a) ;
         if b<y then s1:=s1+(y-b) ;
          if c<z then s1:=s1+(z-c) ;
    if s>=s1 then writeln('Yes')
    else writeln('No');
    end;
    end;
End.

var k1,k2,k3,n1,n2,n3,a,b,c,x,y,z:int64;
begin
readln(a,b,c);
read(x,y,z);
if a<x then k1:=x-a else n1:=a-x;
if b<y then k2:=y-b else n2:=b-y;
if c<z then k3:=z-c else n3:=c-z;
if n1+n2+n3<k1+k2+k3 then write('No') else write('Yes');
end.

const
   tfi='606a.inp';
   tfo='606A.out';

var
   fi, fo: text;
   a, b: array[1..3] of longint;

procedure __;
var
   can, du, i: longint;
begin

   readln( a[1], a[2], a[3]);
   readln(b[1], b[2], b[3]);
   for i:=1 to 3 do
      if a[i]>b[i] then
         du := du+((a[i]-b[i]) div 2)
      else can := can+b[i]-a[i];
   if du>=can then write('YES')
   else write('NO');
end;

procedure _;
begin

end;

BEGIN
   __;
   _;
END.

var
 a,b,c,x,y,z,k,i: longint;
begin
 readln(a,b,c);
 readln(x,y,z);

 if (a-x) > 0 then inc(k,a-x);
 if (b-y) > 0 then inc(k,b-y);
 if (c-z) > 0 then inc(k,c-z);

 if x > a then
 if 2*(x-a) <= k then dec(k,2*(x-a)) else begin writeln('No'); halt; end;

 if y > b then
 if 2*(y-b) <= k then dec(k,2*(y-b)) else begin writeln('No'); halt; end;

 if z > c then
 if 2*(z-c) <= k then dec(k,2*(z-c)) else begin writeln('No'); halt; end;

 writeln('Yes');
end.

var
 a,b,c,x,y,z,k,i,a1,b1,c1: longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 a1:=a;
 b1:=b;
 c1:=c;
 while (a1 > x) or (b1 > y) or (c1 > z) do
 begin
  if (a1-x) >= 2 then begin dec(a1,2); inc(k); end else break;
  if (b1-y) >= 2 then begin dec(b1,2); inc(k); end else break;
  if (c1-z) >= 2 then begin dec(c1,2); inc(k); end else break;
 end;

 writeln(k);
 if x > a then
 for i:=1 to x-a do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if y > b then
 forvar
 a,b,c,x,y,z,k: int64;
 i: longint;
begin
 readln(a,b,c);
 readln(x,y,z);

 if (a-x) > 0 then inc(k,a-x);
 if (b-y) > 0 then inc(k,b-y);
 if (c-z) > 0 then inc(k,c-z);
 if x > a then
 for i:=1 to x-a do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;

 if y > b then
 for i:=1 to y-b do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;
 if z > c then
 for i:=1 to z-c do
 begin
  if k < 2 then begin writeln('No'); halt; end;
  dec(k,2);
 end;
 writeln('Yes');
end. i:=1 to y-b do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if z > c then
 for i:=1 to z-c do
 begin
  if k = 0 then begin writeln('No'); halt; end;
  dec(k);
 end;

 if k < 0 then writeln('No') else writeln('Yes');
end.

{$mode objfpc}
{$coperators on}
{$macro on}
uses math;
const
     fin   ='';
     fou   ='';
type
     pair = record
          fi,se     :longint;
     end;
var
     a,b,c     ,x,y,z    :longint;
procedure enter;
begin
     readln(a,b,c);
     readln(x,y,z);
end;
procedure solve;
var
     u,v  :longint;
begin
     u:=0;
     v:=0;
     if a>x then u+=a-x
     else v+=x-a;
     if b>y then u+=b-y
     else v+=y-b;
     if c>z then u+=c-z
     else v+=z-c;
     if (u div 2>=v) then writeln('YES')
     else writeln('NO');
end;

BEGIN
     assign(input,fin);   reset(input);
     assign(output,fou);  rewrite(output);

     enter;
     solve;

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

program magicspheresa;

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

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

const fi='';
      fo='';
var a,b,c,x,y,z,n,m:longint;

Begin
        assign(input,fi);reset(input);
        read(a,b,c,x,y,z);
        close(input);

        assign(output,fo);rewrite(output);
        if (a>x) and (b>x) and (c>x) then write('YES');
        if (a>x) then begin
                if a-x>1 then n:=n+(a-x);
        end else m:=m+x-a;
        if (b>y) then begin
                if b-y>1 then n:=n+(b-y);
        end else m:=m+y-b;
        if (c>z) then begin
                if c-z>1 then n:=n+(c-z);
        end else m:=m+z-c;
        if (n div 2>=m) and (n<>0) then write('YES') else write('NO');
        close(output);
END.

VAR
        i,t,j : longint;
        x,a : array[0..3] of longint;

BEGIN
        read(a[1],a[2],a[3]);
        read(x[1],x[2],x[3]);
        for i := 1 to 3 do
                a[i] := a[i]- x[i];
        for i := 1 to 3 do
                for j := i + 1 to 3 do
                        if a[i] > a[j] then begin
                                t := a[i]; a[i] := a[j]; a[j] := t;
                        end;
        if a[1]+a[2]>=0 then write('Yes')
        else write('No');
END.

const fi='';
      fo='';
var a,b,c,x,y,z,n,m:longint;

Begin
        assign(input,fi);reset(input);
        read(a,b,c,x,y,z);
        close(input);

        assign(output,fo);rewrite(output);
        if (a>x) then begin
                if a-x>1 then n:=n+(a-x);
        end else m:=m+x-a;
        if (a>x) then begin
                if b-y>1 then n:=n+(b-y);
        end else m:=m+y-b;
        if (a>x) then begin
                if c-z>1 then n:=n+(c-z);
        end else m:=m+z-c;
        if (n div 2>=m) and (n<>0) then write('YES') else write('NO');
        close(output);
END.

var
    a, b, c, x, y, z, cnt, k: LongInt;

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

    cnt:= 0;
    k:= 0;

    if a > x then
        cnt:= cnt + (a - x) div 2
    else
        k:= k + a - x;

    if b > y then
        cnt:= cnt + (b - y) div 2
    else
        k:= k + b - y;

    if c > z then
        cnt:= cnt + (c - z) div 2
    else
        k:= k + c - x;

    WriteLn (cnt, ' ', k);

    if k + cnt >= 0  then
        WriteLn ('Yes')
    else
        WriteLn ('No')
end.

type int3 = 1..3;
var
   i, f : int3;
   a, x : array [int3] of longint;
begin
  for i := 1 to 3 do
    read(a[i]);
  for i := 1 to 3 do
    read(x[i]);
  for i := 1 to 3 do
  begin
    while a[i] > x[i] do
    begin
      dec(a[i], 2);
      if i = 3 then inc(a[1]) else inc(a[i+1]);
    end;
  end;
  for i := 1 to 3 do
  begin
    if a[i] <> x[i] then
    begin
      f := 1;
      break;
    end;
  end;
  if f = 0 then writeln('Yes') else writeln('No');
end.

program arsofurs;
var     t,ind3,ind1,ind2,n,m,x,y,z,a,b,c:longint;
begin
readln(a,b,c);
readln(x,y,z);

while(a<>x)or(b<>y)or(c<>z)do begin

if (a<=x)and(b<=y)and(c<=z)then begin writeln('No');halt;end;
if t>=1 then begin writeln('No');halt;end else t:=0;

if (x<>0)then

while(a>x)do
begin
if a-2<0 then begin inc(t); break;end;
if (a-20>0)and(a-20>x)then begin ind1:=ind1+10;a:=a-20;end else begin
inc(ind1);
a:=a-2; end;
end else

while(a>0)do
begin
if a-2<0 then begin inc(t); break;end;
if (a-20>0)and(a-20>x)then begin ind1:=ind1+10;a:=a-20;end else begin
inc(ind1);a:=a-2;end;
end;

if (y<>0)then

while(b>y)do
begin
if b-2<0 then begin inc(t); break;end;
if (b-20>0)and(b-20>y)then begin ind2:=ind2+10;b:=b-20;end else begin
inc(ind2);
b:=b-2;end;
end else

while(b>0)do
begin
if b-2<0 then begin inc(t); break;end;
if (b-20>0)and(b-20>y)then begin ind2:=ind2+10;b:=b-20;end else begin
inc(ind2);
b:=b-2;  end;
end;

if (z<>0)then

while(c>z)do
begin
if c-2<0 then begin inc(t); break;end;
if (c-20>0)and(c-20>z)then begin ind3:=ind3+10;c:=c-20;end else begin
inc(ind3);
c:=c-2;  end;
end else

while(c>0)do
begin
if c-2<0 then begin inc(t); break;end;
if (c-20>0)and(c-20>z)then begin ind3:=ind3+10;c:=c-20;end else begin
inc(ind3);
c:=c-2;    end;
end;

if a<x then if ind2>0 then
while(a<x)and(ind2<>0)do
begin
dec(ind2);
inc(a);
end;

if a<x then if ind3>0 then
while(a<x)and(ind3<>0)do
begin
dec(ind3);
inc(a);
end;

if b<y then if ind1>0 then
while(b<y)and(ind1<>0)do
begin
dec(ind1);
inc(b);
end;

if b<y then if ind3>0 then
while(b<y)and(ind3<>0)do
begin
dec(ind3);
inc(b);
end;

if c<z then if ind1>0 then
while(c<z)and(ind1<>0)do
begin
dec(ind1);
inc(c);
end;

if c<z then if ind2>0 then
while(c<z)and(ind2<>0)do
begin
dec(ind2);
inc(c);
end;

a:=a+ind1;
b:=b+ind2;
c:=c+ind3;

ind1:=0; ind2:=0;ind3:=0;

end;

writeln('Yes');

end.

const
        fi='';
        fa='';
var
        a,b,c,x,y,z:longint;
        kt:boolean;
procedure xl;
var i,j:longint;
    q:array[1..1000] of record a,b,c:longint; end;
    dau,cuoi:longint;
begin
    assign(input,fi);reset(input);
    assign(output,fa);rewrite(output);
    read(a,b,c,x,y,z);
    if (a=x) and (b=y) and (c=z) then write('YES')
    else
        begin
                dau:=1;
    cuoi:=1;
    q[dau].a:=a;
    q[dau].b:=b;
    q[dau].c:=c;
    while dau<=cuoi do
        begin
            if (q[dau].a<x) and (q[dau].b<y) and (q[dau].c<z) then break;
            if q[dau].a>=2 then
                begin
                    inc(cuoi);
                    q[cuoi].a:=q[dau].a-2;
                    q[cuoi].b:=q[dau].b+1;
                    q[cuoi].c:=q[dau].c;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                            break;
                        end;

                    inc(cuoi);
                    q[cuoi].a:=q[dau].a-2;
                    q[cuoi].b:=q[dau].b;
                    q[cuoi].c:=q[dau].c+1;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                            break;
                        end;
                end;
            if q[dau].b>=2 then
                begin

                    inc(cuoi);
                    q[cuoi].a:=q[dau].a+1;
                    q[cuoi].b:=q[dau].b-2;
                    q[cuoi].c:=q[dau].c;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                            break;
                        end;

                    inc(cuoi);
                    q[cuoi].a:=q[dau].a;
                    q[cuoi].b:=q[dau].b-2;
                    q[cuoi].c:=q[dau].c+1;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                           break;
                        end;
                end;
            if q[dau].c>=2 then
                begin

                    inc(cuoi);
                    q[cuoi].a:=q[dau].a+1;
                    q[cuoi].b:=q[dau].b;
                    q[cuoi].c:=q[dau].c-2;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                            break;
                        end;

                    inc(cuoi);
                    q[cuoi].a:=q[dau].a;
                    q[cuoi].b:=q[dau].b+1;
                    q[cuoi].c:=q[dau].c-2;
                    if (q[cuoi].a=x) and (q[cuoi].b=y) and(q[cuoi].c=z) then
                        begin
                            kt:=true;
                            break;
                        end;
                end;
               inc(dau);
        end;
            if kt then writeln('YES') else write('NO');
        end;
    close(output);
    close(input);
end;
begin
    xl;
end.

const
	fi = '';
	fo = '';
var a,b,c,x,y,z,i:longint;
	t:array[1..3] of longint;
begin
	assign(input, fi); reset(input);
	assign(output, fo); rewrite(output);
	readln(a,b,c);
	readln(x,y,z);
	if a>=x then
	begin
		t[1]:=x; b:=b+(a-x) div 2;
	end else
	begin
		t[1]:=x; b:=b-(x-a)*2;
	end;
	if b>=y then
	begin
		t[2]:=y; c:=c+(b-y) div 2;
	end else
	begin
		t[2]:=y; c:=c-(y-b)*2;
	end;
	if c>=z then writeln('Yes') else writeln('No');
	close(input); close(output);
end.

var a,b,c,x,y,z,aa,bb,cc:longint;
 begin
  read(a,b,c);
  read(x,y,z);
  aa:=a-x;
  bb:=b-y;
  cc:=c-z;
  if aa<0 then
   begin
    while (bb-2>=0) and (aa<0) do
     begin
      dec(bb,2);
      inc(aa,2);
     end;
    while (cc-2>=0) and (aa<0) do
     begin
      dec(cc,2);
      inc(aa,2);
     end;
   end;
  if bb<0 then
   begin
    while (aa-2>=0) and (bb<0) do
     begin
      dec(aa,2);
      inc(bb,2);
     end;
    while (cc-2>=0) and (bb<0) do
     begin
      dec(cc,2);
      inc(bb,2);
     end;
   end;
  if cc<0 then
   begin
    while (aa-2>=0) and (cc<0) do
     begin
      dec(aa,2);
      inc(cc,2);
     end;
    while (bb-2>=0) and (cc<0) do
     begin
      dec(bb,2);
      inc(cc,2);
     end;
   end;
  if (aa>=0) and (bb>=0) and (cc>=0) then write('Yes') else write('No');
 end.

Var a,b,c,a1,b1,c1:longint;
  Begin
    readln(a,b,c);
    readln(a1,b1,c1);
    if (a>=a1) and (b>=b1) and (c>=1)
    then writeln('Yes')
    else writeln('No');
 End.

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

var a,b,c,x,y,z,k:integer;
begin
     read(a,b,c);
     read(x,y,z);
     if a>=x then k:=a-x else k:=2*(a-x);
     if b>=y then k:=k+(b-y) else k:=k-2*(y-b);
     if c>=z then k:=k+(c-z) else k:=k-2*(z-c);
     if k<0 then writeln('No') else writeln('Yes');
end.

uses math;
var a, _a : array[1..3] of longint;
      j, i, mx, io: longint;
begin
        for i:=1 to 3 do read(A[i]);
        for i:=1 to 3 do read(_a[i]);
        for i:=1 to 3 do if a[i]<_a[i] then
         begin
                mx:=-10000000;
                for j:=1 to 3 do begin io:=i; mx:=max(mx,a[i]); end;
                dec(a[io],_a[i]-a[i]);
                inc(a[i],_a[i]-a[i]);
                for j:=1 to 3 do  if a[j]<_a[j] then
                 begin
                        writeln('No'); halt;
                 end;
         end;
        writeln('Yes');
end.

var cl: array [1..3] of longint;
		co, can, dm, i, tmp: longint;
		lg: boolean;
begin
	co:=0; can:=0;
	for i:=1 to 3 do
		begin
			read(cl[i]); inc(co,cl[i]);
		end;
	for i:=1 to 3 do
		begin
			read(tmp); cl[i]:=cl[i]-tmp; inc(can,tmp);
		end;
	dm:=0;
	if co<can then
		begin
			writeln('No');
			halt;
		end;
	repeat
		inc(dm); if dm=4 then dm:=1;
		while (cl[dm]>0) do
			begin
				dec(cl[dm],2); lg:=true;
				for i:=1 to 3 do
					if (odd(cl[i])) then
						begin
							inc(cl[i]); lg:=false;
							break;
						end;
				if lg then
					for i:=1 to 3 do
						if (cl[i]<0) then
							begin
								inc(cl[i]);
								break;
							end;
				if lg then
					if dm=3 then inc(cl[1])
					else inc(cl[dm+1]);
				dec(co);
			end;
		if co<can then
			begin
				writeln('No');
				halt;
			end;
		if co=can then
			begin
				for i:=1 to 3 do
					if cl[i]<>0 then
						begin
							writeln('No');
							halt;
						end;
					writeln('Yes'); halt;
			end;
	until false;
end.

Var a,b,c,x,y,z,s,s1:longint;
  Begin
    readln(a,b,c);
    readln(x,y,z);
    if (a+b+c=0) or (x+y+z=0) then writeln('No')
    else begin
    if a+b+c<=x+y+z then writeln('No')
    else begin
      if a>x then s:=s+ (a-x) div 2;
       if b>y then s:=s+(b-y) div 2;
       if c>z then s:=s+(c-z) div 2;
        if a<x then s1:=s1+(x-a) ;
         if b<y then s1:=s1+(y-b) ;
          if c<z then s1:=s1+(z-c) ;
    if s>=s1 then writeln('Yes')
    else writeln('No');
    end;
    end;
End.

Var a,b,c,a1,b1,c1:longint;
  Begin
    readln(a,b,c);
    readln(a1,b1,c1);
    if (a+b+c)>=(a1+b1+c1+2) then writeln('Yes')
    else writeln('No');
 End.

uses math;
var a,b,c,tr,vis,x,y,z:longint;
 begin
  read(a,b,c);
  read(x,y,z);

  tr:=max(x-a,0)+max(y-b,0)+max(z-c,0);
  vis:=max(a-x,0)+max(b-y,0)+max(c-z,0);

  if vis div 2>=tr then writeln('YES') else writeln('NO');
 end.

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

uses math;
var a,b,c:longint;
    x,y,z,s,t,dem:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 dem:=0;
 if a>=x then inc(dem);
 if b>=y then inc(dem);
 if c>=z  then inc(dem);
 if dem<2 then write('No')
 else
  begin
   if dem=3 then write('Yes');
   if dem=2 then
       begin
        s:=maxlongint;
    if a-x>0 then s:=min(s,a-x)
     else t:=a-x;
    if b-y>0 then s:=min(s,b-y)
     else t:=b-y;
    if c-z>0 then s:=min(s,c-z)
     else t:=c-z;
    if s>=abs(t) then write('Yes')
     else write('No');
      end;
  end;
end.

program cf606A;
var a,b,c,x,y,z:int64;

begin
read(a,b,c,x,y,z);
if a>x then
        begin
        a:=a-x;
        x:=0;
        end
else
        begin
        a:=0;
        x:=x-a;
        end;
if b>y then
        begin
        b:=b-y;
        y:=0;
        end
else
        begin
        b:=0;
        y:=y-b;
        end;
if c>z then
        begin
        c:=c-z;
        z:=0;
        end
else
        begin
        c:=0;
        z:=z-c;
        end;

if (x+y+z)*2<=(a+b+c) then
        writeln('Yes')
else
        writeln('No');
end.

var
  a,b,c,x,y,z,s1,s2,i : longint;

  function gt(x,y : longint) : longint;
    begin
      if y > x then exit(0) else exit((x-y) div 2);
    end;

begin
  readln(a,b,c,x,y,z);
  if a >= x then begin
    s1:=gt(a,x);
    dec(a,s1*2);
    inc(b,s1 div 2); inc(c,s1 div 2);
  end;
  if b >= y then begin
    s1:=gt(b,y);
    dec(b,s1*2);
    inc(a,s1 div 2); inc(c,s1 div 2);
  end;
  if c >= z then begin
    s1:=gt(c,z);
    dec(c,s1*2);
    inc(a,s1 div 2); inc(b,s1 div 2);
  end;
  if a < x then begin
    s1:=gt(b,y); s2:=gt(c,z);
    if s1+s2+a < x then begin writeln('No'); halt; end else begin
      inc(a,s1+s2);
      dec(b,s1*2); dec(c,s2*2);
    end;
  end;
  if b < y then begin
    s1:=gt(a,x); s2:=gt(c,z);
    if s1+s2+b < y then begin writeln('No'); halt; end else begin
      inc(b,s1+s2);
      dec(a,s1*2); dec(c,s2*2);
    end;
  end;
  if c < z then begin
    s1:=gt(b,y); s2:=gt(a,x);
    if s1+s2+c < z then begin writeln('No'); halt; end else begin
      inc(c,s1+s2);
      dec(b,s1*2); dec(a,s2*2);
    end;
  end;
  writeln('Yes');
end.

const fi='';
      fo='';
var a,b,c,x,y,z,n,m:longint;

Begin
        assign(input,fi);reset(input);
        read(a,b,c,x,y,z);
        close(input);

        assign(output,fo);rewrite(output);
        if (a>x) then begin
                if a-x>1 then n:=n+(a-x);
        end else m:=m+x-a;
        if (b>y) then begin
                if b-y>1 then n:=n+(b-y);
        end else m:=m+y-b;
        if (c>z) then begin
                if c-z>1 then n:=n+(c-z);
        end else m:=m+z-c;
        if (n div 2>=m) and (n<>0) then write('YES') else write('NO');
        close(output);
END.

program ex;
 var a,b,c,x,y,z,m,n,ma,mb,mc:longint;
begin
readln(input,a,b,c);
readln(input,x,y,z);
m:=0; n:=0;
ma:=a-x;
mb:=b-y;
mc:=c-z;
if ma>=0 then m:=m+ma div 2 else n:=n-ma;
if mb>=0 then m:=m+mb div 2 else n:=n-mb;
if mc>=0 then m:=m+mc div 2 else n:=n-mc;
if (m>n) and ((m<>0) and (n<>0)) then writeln(output,'Yes') else writeln(output,'No');
end.

var a,b,c,a1,b1,c1,x,z,y:longint;
begin
read(a,b,c,a1,b1,c1);
a1:=a-x;
b1:=b-y;
c1:=c-z;
if a1>0 then a1:=a1 div 2;
if b1>0 then b1:=b1 div 2;
if c1>0 then c1:=c1 div 2;
if a1+b1+c1>=0 then
write('Yes')
else write('No');
end.

Var a,b,c,x,y,z,s,s1:longint;
  Begin
    readln(a,b,c);
    readln(x,y,z);
    if (a+b+c=0) or (x+y+z=0) then writeln('Yes')
    else begin
    if a+b+c<=x+y+z then writeln('No')
    else begin
      if a>x then s:=s+ (a-x) div 2;
       if b>y then s:=s+(b-y) div 2;
       if c>z then s:=s+(c-z) div 2;
        if a<x then s1:=s1+(x-a) ;
         if b<y then s1:=s1+(y-b) ;
          if c<z then s1:=s1+(z-c) ;
    if s>=s1 then writeln('Yes')
    else writeln('No');
    end;
    end;
End.

var a,b,c,x,y,z,r1,r2,r3,s1,a1,b1:integer;
begin
read(a,b,c);
read(x,y,z);
r1:=a-x;
r2:=b-y;
r3:=c-z;
if ((a-x)>0) and ((b-y)>0)then
a1:=a-x;
b1:=b-y;
s1:=a1+b1+c;
if s1>=z then
write('Yes')
else
if (r1<0) or (r2<0) or (r3<0) then
write('No')
else
if (r1>0) and (r2>0) and (r3>0) then
write('Yes')
end.

const fi='';
      fo='';
var a,b,s: array[1..3] of longint;
    i, j, ind, maxa, maxb, temp: longint;
    f, g: text;
begin
    assign(f,fi); assign(g,fo);
    reset(f); rewrite(g);
    readln(f,a[1],a[2],a[3]);
    readln(f,b[1],b[2],b[3]);
    for i:=1 to 3 do
      begin
        s[1]:=s[1]+a[i];
        s[2]:=s[2]+b[i];
      end;
    for i:=3 downto 2 do
    begin
      maxa:=1; maxb:=1;
      for j:=1 to i do
      begin
        if a[maxa]<a[j] then maxa:=j;
        if b[maxb]<b[j] then maxb:=j;
      end;
      temp:=a[i];
      a[i]:=a[maxa];
      a[maxa]:=temp;
      temp:=b[i];
      b[i]:=b[maxb];
      b[maxb]:=temp;
    end;
    j:=0;
    temp:=0;
    ind:=1;
    for i:=1 to 3 do
      begin
        if a[i]>=b[i]then inc(j)
        else ind:=i;
        maxa:=b[ind]-a[ind];
      end;
    for i:=1 to 3 do
      if i<>ind then
      begin
        inc(temp);
        s[temp]:=a[i]-b[i];
      end;
    if s[1]<s[2] then temp:=s[1] else temp:=s[2];
    if j=1 then writeln(g,'NO')
    else
      begin
        if j=3 then writeln(g,'YES')
        else
          if temp>=b[ind]-a[ind] then writeln(g,'YES')
          else writeln(g,'NO');
      end;
    close(f); close(g);
end.

type int3 = 1..3;
var
   i, f : int3;
   a, x : array [int3] of longint;
begin
  for i := 1 to 3 do
    read(a[i]);
  for i := 1 to 3 do
    read(x[i]);
  for i := 1 to 3 do
  begin
    while a[i] > x[i] do
    begin
      dec(a[i], 2);
      if i = 3 then inc(a[1]) else inc(a[i+1]);
    end;
  end;
  for i := 1 to 3 do
  begin
    if (a[i] - x[i]) mod 2 <> 0 then
    begin
      f := 1;
      break;
    end;
  end;
  if f = 0 then writeln('Yes') else writeln('No');
end.

const fi='';
      fo='';
var a,b,c,x,y,z,n,m:longint;

Begin
        assign(input,fi);reset(input);
        read(a,b,c,x,y,z);
        close(input);

        assign(output,fo);rewrite(output);
        if (a>x) then begin
                if a-x=1 then n:=n+(a-x);
        end else m:=m+x-a;
        if (b>y) then begin
                if b-y=1 then n:=n+(b-y);
        end else m:=m+y-b;
        if (c>z) then begin
                if c-z=1 then n:=n+(c-z);
        end else m:=m+z-c;
        if (n div 2>=m) and (n<>0) then write('YES') else write('NO');
        close(output);
END.

Var a,b,c,x,y,z,s,s1:longint;
  Begin
    readln(a,b,c);
    readln(x,y,z);
    if (a+b+c=0) or (x+y+z=0) then writeln('No')
    else begin
    if a+b+c<=x+y+z then writeln('No')
    else begin
      if a>x then s:=s+ (a-x) div 2;
       if b>y then s:=s+(b-y) div 2;
       if c>z then s:=s+(c-z) div 2;
        if a<x then s1:=s1+(x-a) ;
         if b<y then s1:=s1+(y-b) ;
          if c<z then s1:=s1+(z-c) ;
    if s>=s1 then writeln('Yes')
    else writeln('No');
    end;
    end;
End.

var a,b,c,x,y,z,s,s1:longint;
begin
readln(a,b,c);
readln(x,y,z);
if a+b+c<=x+y+z then writeln('No')
                else begin
                 s:=0;s1:=0;
                if a>x then s:=(a-x) div 2+s ;
                 if b>y then s:=(b-y) div 2+s;
                 if c>z then s:=(c-z) div 2 +s;
                  if a<x then s1:=(x-a) +s1 ;
                 if b<y then s1:=(y-b) +s1;
                 if c<z then s1:=(z-c)  +s1;
                 if s>s1 then writeln('Yes')
                          else writeln('No');
                     end;
                     end.

program arsofurs;
var     t,ind3,ind1,ind2,n,m,x,y,z,a,b,c:longint;
begin
readln(a,b,c);
readln(x,y,z);

while(a<>x)or(b<>y)or(c<>z)do begin

if (a<=x)and(b<=y)and(c<=z)then begin writeln('No');halt;end;
if t>=3 then begin writeln('No');halt;end else t:=0;
if (a<=x)and(b<=y)and(c<=z+1)then begin writeln('No');halt;end;
if (a<=x)and(b<=y+1)and(c<=z)then begin writeln('No');halt;end;
if (a<=x+1)and(b<=y)and(c<=z)then begin writeln('No');halt;end;

if (x<>0)then

while(a>x)do
begin
if a-2<0 then begin inc(t); break;end;
if (a-20>0)and(a-20>x)then begin ind1:=ind1+10;a:=a-20;end else begin
inc(ind1);
a:=a-2; end;
end else

while(a>0)do
begin
if a-2<0 then begin inc(t); break;end;
if (a-20>0)and(a-20>x)then begin ind1:=ind1+10;a:=a-20;end else begin
inc(ind1);a:=a-2;end;
end;

if (y<>0)then

while(b>y)do
begin
if b-2<0 then begin inc(t); break;end;
if (b-20>0)and(b-20>y)then begin ind2:=ind2+10;b:=b-20;end else begin
inc(ind2);
b:=b-2;end;
end else

while(b>0)do
begin
if b-2<0 then begin inc(t); break;end;
if (b-20>0)and(b-20>y)then begin ind2:=ind2+10;b:=b-20;end else begin
inc(ind2);
b:=b-2;  end;
end;

if (z<>0)then

while(c>z)do
begin
if c-2<0 then begin inc(t); break;end;
if (c-20>0)and(c-20>z)then begin ind3:=ind3+10;c:=c-20;end else begin
inc(ind3);
c:=c-2;  end;
end else

while(c>0)do
begin
if c-2<0 then begin inc(t); break;end;
if (c-20>0)and(c-20>z)then begin ind3:=ind3+10;c:=c-20;end else begin
inc(ind3);
c:=c-2;    end;
end;

if a<x then if ind2>0 then
while(a<x)and(ind2<>0)do
begin
dec(ind2);
inc(a);
end;

if a<x then if ind3>0 then
while(a<x)and(ind3<>0)do
begin
dec(ind3);
inc(a);
end;

if b<y then if ind1>0 then
while(b<y)and(ind1<>0)do
begin
dec(ind1);
inc(b);
end;

if b<y then if ind3>0 then
while(b<y)and(ind3<>0)do
begin
dec(ind3);
inc(b);
end;

if c<z then if ind1>0 then
while(c<z)and(ind1<>0)do
begin
dec(ind1);
inc(c);
end;

if c<z then if ind2>0 then
while(c<z)and(ind2<>0)do
begin
dec(ind2);
inc(c);
end;

a:=a+ind1;
b:=b+ind2;
c:=c+ind3;

ind1:=0; ind2:=0;ind3:=0;

end;

writeln('Yes');

end.

uses math;
var
 a,b,c,x,y,z,k1,k2:longint;
begin
 readln(a,b,c);
 readln(x,y,z);
 inc(k1,max(0,x-a));
 inc(k2,max(0,a-x));
 inc(k1,max(0,y-b));
 inc(k2,max(0,b-y));
 inc(k1,max(0,z-c));
 inc(k2,max(0,c-z));
 if k2 div 2>=k1 then writeln('Yes')else writeln('No');
end.

var m,n,i:integer;
begin
read (n);
for i:=1 to n do begin
read(m);
while m>0 do begin
write ('p');
if m-1>0 then begin
if i<=n then begin
write ('RL');
end
else
write ('RL');
end
else if i<n then write ('R');
m:=m-i;
end;
end;
end.

var
 q:array[0..100000]  of record
  f1,f2,f3:longint;
 end;
 a,b,c,x,y,z,q1,q2:longint;
procedure add(f1,f2,f3:longint);
begin
 if (f1<0)or(f2<0)or(f3<0) then exit;
 if (f1=x)and(f2=y)and(f3=z) then begin writeln('Yes');halt;end;
 q[q1].f1:=f1;q[q1].f2:=f2;q[q1].f3:=f3;
 inc(q1);
 if q1=50000 then q1:=0;
end;
begin
 readln(a,b,c);
 readln(x,y,z);
 q1:=0;
 q2:=0;
 add(a,b,c);
 while q1<>q2 do with q[q2] do
 begin
  add(f1-2,f2+1,f3);
  add(f1-2,f2,f3+1);
  add(f1+1,f2-2,f3);
  add(f1,f2-2,f3+1);
  add(f1+1,f2,f3-2);
  add(f1,f2+1,f3-2);
  inc(q2);
  if q2=50000 then q2:=0;;
 end;
 writeln('No');
end.

var
 ax,by,cz,k,n,m,i,j,a,b,c,x,y,z:int64;
procedure cool;
begin
 writeln('Yes');
 halt;
end;
procedure error;
begin
 writeln('No');
 halt;
end;
begin
 readln(a,b,c);
 readln(x,y,z);
 if a>x then inc(k,(x*2)+a-x) else inc(k,a*2);
 if b>y then inc(k,(y*2)+b-y) else inc(k,b*2);
 if c>z then inc(k,(z*2)+c-z) else inc(k,c*2);
 if k div 2 >=x+y+z then cool else error;
end.

var
    a, b, c, x, y, z, cnt, k: LongInt;

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

    cnt:= 0;
    k:= 0;

    if a > x then
        cnt:= cnt + (a - x) div 2
    else
        k:= k + a - x;

    if b > y then
        cnt:= cnt + (b - y) div 2
    else
        k:= k + b - y;

    if c > z then
        cnt:= cnt + (c - z) div 2
    else
        k:= k + c - x;

    WriteLn (cnt, ' ', k);

    if k + cnt >= 0  then
        WriteLn ('Yes')
    else
        WriteLn ('No')
end.

program magicspheresa;

var
  a,b,c,a1,b1,c1:real;

begin
  readln(a,b,c);
  readln(a1,b1,c1);
  while a>a1 do begin a:=a-2; b:=b+1 end;
  while b>b1 do begin b:=b-2; c:=c+1 end;
  while c>c1 do begin c:=c-2; a:=a+1 end;
  if (a<>a1) or (b<>b1) or (c<>c1) then writeln('NO') else writeln('YES');
  readln;
end.

const
   tfi='606A.inp';
   tfo='606A.out';

var
   fi, fo: text;
   a, b, c: array[1..3] of longint;

procedure __;
begin

   readln( a[1], a[2], a[3]);
   readln(c[1], c[2], c[3]);
end;

procedure xuly;
var
   du, dem, i, j: longint;
begin
   du := 0;b := a;
   for i:=1 to 3 do
      begin
         if b[i]>c[i] then
            begin
               dem := 1;
               while b[i]-dem*2>=c[i] do
                  begin
                     dem :=dem*2;
                     inc(du);
                  end;
               if dem<>1then b[i] := b[i]-dem;
            end
         else if (b[i]<c[i]) and (du>0) then
            while b[i]+1<=c[i] do
               begin
                  b[i] := b[i]+1;
                  du := du-1;
               end;
      end;
   for j:=1 to 3 do
   if b[j]<c[j] then
   begin
      du := 0;b := a;
      for i:=3 downto 1 do
      begin
         if b[i]>c[i] then
            begin
               dem := 1;
               while b[i]-dem*2>=c[i] do
                  begin
                     dem :=dem*2;
                     inc(du);
                  end;
               if dem<>1then b[i] := b[i]-dem;
            end
         else if (b[i]<c[i]) and (du>0) then
            while b[i]+1<=c[i] do
               begin
                  b[i] := b[i]+1;
                  du := du-1;
               end;
      end;
      break;
   end;
   for i:=1 to 3 do
      if b[i]<c[i] then
         begin
            write('NO'); exit;
         end;
   write('YES');
end;

procedure _;
begin

end;

BEGIN
   __;
   xuly;
   _;
END.

var
need,a,b,c,x,y,z:longint;
begin
readln(a,b,c);
readln(x,y,z);

if a>x then begin
    dec(a,x);
    x:=0;
end
else begin

    dec(x,a);
    a:=0;
end;

if b>y then begin
    dec(b,y);
    y:=0;
end
else begin

    dec(y,b);
    b:=0;
end;

if c>z then begin
    dec(c,z);
    z:=0;
end
else begin
    c:=0;
    dec(z,c);
end;
need:=x+y+z;
writeln(need);
need:=need-(a div 2+ b div 2+ c div 2);
if need<=0 then writeln('Yes')
else
writeln('No');
end.

program ex;
 var a,b,c,x,y,z,ma,mb,mc,mia,mib,mic:longint;
begin
readln(input,a,b,c);
readln(input,x,y,z);
ma:=a-x; mia:=0; mib:=0; mic:=0; if ma>=0 then mia:=0-ma else begin mia:=ma; ma:=0; end;
mb:=b-y; if mb>=0 then mib:=0-mb else begin mib:=mb; mb:=0; end;
mc:=c-z; if mc>=0 then mic:=0-mc else begin mic:=mc; mc:=0; end;
if ma div 2 +mb div 2+mc div 2>=mia+mib+mic then writeln(output,'Yes') else writeln(output,'No');
end.

program magicspheresa;

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

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

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

var
need,a,b,c,x,y,z:longint;
begin
readln(a,b,c);
readln(x,y,z);
if a>x then begin
    dec(a,x);
    x:=0;
end
else begin
    a:=0;
    dec(x,a);
end;

if b>y then begin
    dec(b,y);
    y:=0;
end
else begin
    b:=0;
    dec(y,b);
end;

if c>z then begin
    dec(c,z);
    z:=0;
end
else begin
    c:=0;
    dec(z,c);
end;
need:=x+y+z;
need:=need-(a div 2+ b div 2+ c div 2);
if need<=0 then writeln('Yes')
else
writeln('No');
end.

uses math;
var a, _a : array[1..3] of longint;
      j, i, mx, io: longint;
begin
        for i:=1 to 3 do read(A[i]);
        for i:=1 to 3 do read(_a[i]);
        for i:=1 to 3 do if a[i]<_a[i] then
         begin
                mx:=-10000000;
                for j:=1 to 3 do begin io:=i; mx:=max(mx,a[i]); end;
                dec(a[io],2*(_a[i]-a[i]));
                inc(a[i],_a[i]-a[i]);
                for j:=1 to 3 do  if a[j]<_a[j] then
                 begin
                        writeln('No'); halt;
                 end;
         end;
        writeln('Yes');
end.

var a,b,c,a1,b1,c1,x,z,y:longint;
begin
read(a,b,c,a1,b1,c1);
a1:=a-x;
b1:=b-y;
c1:=c-z;
if a1>0 then a1:=a1 div 2;
if b1>0 then b1:=b1 div 2;
if c1>0 then c1:=c1 div 2;
if a1+b1+c1>=0 then
write('Yes')
else write('No');
end.