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.

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.

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.

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.

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.

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.

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.

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.

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,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 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.

{$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 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,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.

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.

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
  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.

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,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.

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.

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
           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.

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.

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.

{$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.

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.

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
    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.

{$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
 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.

{$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,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 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;
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,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.

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.

  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.

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.

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.

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 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.

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.

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.

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,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.

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,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.

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.

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.

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.

{$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.

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.

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.

  {$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.

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.

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.

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,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.

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
  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.

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,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.