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)?


-----Input-----

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.


-----Output-----

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


-----Examples-----
Input
4 4 0
2 1 2

Output
Yes

Input
5 6 1
2 7 2

Output
No

Input
3 3 3
2 2 2

Output
Yes



-----Note-----

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

Difficulty: interview

Starter code:

Solutions:
a, b, c = list(map(int, input().split()))
x, y, z = list(map(int, input().split()))
col = max(0, x - a) + max(0, y - b) + max(0, z - c)
sum = max(0, (a - x) // 2) + max(0, (b - y) // 2) + max(0, (c - z) // 2)
if sum >= col:
    print('Yes')
else:
    print('No')


a, b, c = list(map(int, input().split(' ')))
d, e, f = list(map(int, input().split(' ')))

ex = []
need = []
if a >= d:
    ex.append(a-d)
else:
    need.append(d-a)
if b >= e:
    ex.append(b-e)
else:
    need.append(e-b)
if c >= f:
    ex.append(c-f)
else:
    need.append(f-c)
    
sumx = 0
for i in ex:
    sumx += i // 2

if sumx >= sum(need):
    print("Yes")
else:
    print("No")


#!/usr/bin/env python3

try:
    while True:
        a, b, c = list(map(int, input().split()))
        x, y, z = list(map(int, input().split()))
        a -= x
        b -= y
        c -= z
        if sum(t >> 1 for t in (a, b, c) if t > 0) >= sum(-t for t in (a, b, c) if t < 0):
            print("Yes")
        else:
            print("No")

except EOFError:
    pass


a, b, c = map(int, input().split())
x, y, z = map(int, input().split())
have = 0
if a > x:
    have += (a - x) // 2
if b > y:
    have += (b - y) // 2
if c > z:
    have += (c - z) // 2

need = max(0, x - a) + max(0, y - b) + max(0, z - c)
if have >= need:
    print('Yes')
else:
    print('No')

a, b, c = list(map(int, input().split()))
x, y, z = list(map(int, input().split()))
dx = [a - x, b - y, c - z]
splus = 0
sminus = 0
for i in dx:
    if i > 0:
        splus += i // 2
    else:
        sminus += -i
if sminus == 0 or splus >= sminus:
    print('Yes')
else:
    print('No')



import math
Own = list(map(int, input().split()))
Req = list(map(int, input().split()))

Delta = 0
for i in range(3):
    Delta += math.floor((Own[i] - Req[i])/2) if Own[i] > Req[i] else (Own[i]-Req[i])

print("Yes" if Delta >= 0 else "No")

a, b, c = tuple(map(int, input().split()))
x, y, z = tuple(map(int, input().split()))

have = 0
need = 0

if a > x:
    have += (a - x) // 2
else:
    need += x - a

if b > y:
    have += (b - y) // 2
else:
    need += y - b
    
if c > z:
    have += (c - z) // 2
else:
    need += z - c

if need > have:
    print('No')
else:
    print('Yes')

a, b, c = list(map(int, input().split()))
x, y, z = list(map(int, input().split()))
if a >= x:
    a -= x
    x = 0
else:
    x -= a
    a = 0
    

if b >=y:
    b -= y
    y = 0
else:
    y -= b
    b = 0

if c >= z:
    c -= z
    z = 0
else:
    z -= c
    c= 0
    
if a // 2 + b // 2 + c // 2 >= x + y + z:
    print('Yes')
else:
    print('No')


a, b, c = map(int, input().split())
x, y, z = map(int, input().split())
a -= x
b -= y
c -= z
a, b, c = sorted([a, b, c])
k = max(0, c // 2)
c -= min(2 * k, -2 * a)
a += min(k, -a)
if a < 0:
    k = max(0, b // 2)
    b -= min(2 * k, -2 * a)
    a += min(k, -a)
elif b < 0:
    k = max(0, c // 2)
    c -= min(2 * k, -2 * b)
    b += min(k, -b)
if a >= 0 and b >= 0 and c >= 0:
    print("Yes")
else:
    print("No")

have = list(map(int, input().split()))
goal = list(map(int, input().split()))
deficit = 0
makeable = 0
for i in range(3):
    if have[i] < goal[i]:
        deficit += goal[i] - have[i]
    else:
        makeable += (have[i] - goal[i]) // 2
print('Yes' if makeable >= deficit else 'No')


has = list(map(int, input().split()))
target = list(map(int, input().split()))

offer = []
for i in range(3):
    if has[i] - target[i] > 0:
        offer.append(int((has[i] - target[i]) / 2))
    else:
        offer.append(int(has[i] - target[i]))

if sum(offer) >= 0:
    print("Yes")
else:
    print("No")

__author__ = 'MoonBall'

import sys
# sys.stdin = open('data/A.in', 'r')
T = 1

def process():
    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
    delta = 0
    sum_delta = 0
    for _a, _b in zip(a, b):
        if _a < _b:
            delta += _b - _a
        else:
            sum_delta += (_a - _b) // 2

    print('Yes' if sum_delta >= delta else 'No')






for _ in range(T):
    process()


read = lambda: map(int, input().split())
a, b, c = read()
x, y, z = read()
m, n, k = x - a, y - b, z - c
p = 0
q = 0
if m > 0: p += m
else: q += (-m) // 2
if k > 0: p += k
else: q += (-k) // 2
if n > 0: p += n
else: q += (-n) // 2

print('Yes' if q >= p else 'No')

a, b, c = map(int, input().split())
x, y, z = map(int, input().split())
s = (0 if a > x else x - a) + (0 if b > y else y - b) + (0 if c > z else z - c)
t = ((a - x) // 2 if a > x else 0) + ((b - y) // 2 if b > y else 0) + ((c - z) // 2 if c > z else 0)
print('Yes' if t >= s else 'No')

def f(x):
    return x if x <= 0 else x // 2
(a, b, c) = list(map(int, input().split()))
(x, y, z) = list(map(int, input().split()))
(n, m, k) = (a - x, b - y, c - z)
ans = f(n) + f(m) + f(k)
if ans >= 0:
    print("Yes")
else:
    print("No")




a,b,c = list([int(x) for x in input().split(' ')])
x,y,z = list([int(x) for x in input().split(' ')])

if x-a>0 and y-b>0 and z-c>0:
    print('No')
elif x-a<=0 and y-b<=0 and z-c<=0:
    print('Yes')
else:
    n = 0
    if a-x < 0:
        n+=x-a
    if b-y < 0:
        n+=y-b
    if c-z < 0:
        n+=z-c

    t = 0
    if a-x >= 0:
        t+=(a-x)//2
    if b-y >= 0:
        t+=(b-y)//2
    if c-z >= 0:
        t+=(c-z)//2

    if t >= n:
        print('Yes')
    else:
        print('No')


a = [int(x) for x in input().split()]
b = [int(x) for x in input().split()]
t, k = 0, 0
for i in range(3):
    t += max(0, a[i] - b[i]) // 2
    if a[i] < b[i]:
        k += b[i] - a[i]
print("Yes" if t >= k else "No")

a, b, c = [int(x) for x in input().split()]
x, y, z = [int(x) for x in input().split()]

i = (a - x) // 2 if a > x else 0
j = (b - y) // 2 if b > y else 0
k = (c - z) // 2 if c > z else 0

if max(x - a, 0) + max(y - b, 0) + max(z - c, 0) <= i + j + k:
	print('Yes')
else:
	print('No')


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import time

#   = input()
#   = int(input())

#() = (i for i in input().split())
#   = [i for i in input().split()]

a = [int(i) for i in input().split()]
x = [int(i) for i in input().split()]

start = time.time()

ans = 0

for i in range(3):
    a[i] -= x[i]
    if a[i] > 0:
        ans += divmod(a[i], 2)[0]
    else:
        ans += a[i]

if ans >=0:
    print("Yes")
else:
    print("No")

finish = time.time()
#print(finish - start)


a, b, c = map(int, input().split())
x, y, z = map(int, input().split())
r = [a - x, b - y, c - z]
r.sort()
if r[2] < 0:
    print('No')
elif r[1] < 0:
    if r[2] // 2 >= -(r[0] + r[1]):
        print('Yes')
    else:
        print('No')
elif r[0] < 0:
    if r[2] // 2 + r[1] // 2 >= -r[0]:
        print('Yes')
    else:
        print('No')
else:
    print('Yes')

def main():
	a, b, c = list(map(int, input().split()))
	x, y, z = list(map(int, input().split()))

	af = a - x
	bf = b - y
	cf = c - z

	q = sorted([af, bf, cf])

	if all(x < 0 for x in q):
		return False

	if all(x >= 0 for x in q):
		return True

	if q[0] < 0 and q[1] < 0:
		return q[2] // 2 >= -q[0] + -q[1]

	if q[0] < 0:
		return q[1]//2 + q[2]//2 >= -q[0]


if main():
	print('Yes')
else:
	print('No')


l=input().split()
s=input().split()
r=[0]*3
for i in range(3):
    l[i]=int(l[i])
    s[i]=int(s[i])
    r[i]=l[i]-s[i]
k=0
m,n=0,0
for i in range(3):
    if(r[i]>=0):
        m+=r[i]//2
    else:
        k+=1
        r[i]=-r[i]
        n+=r[i]
if(k==3):
    print("No")
else:
    if(m>=n):
        print("Yes")
    else:
        print("No")