Problem: Jafar has n cans of cola. Each can is described by two integers: remaining volume of cola ai and can's capacity bi (ai ≤  bi).

Jafar has decided to pour all remaining cola into just 2 cans, determine if he can do this or not!

Input

The first line of the input contains one integer n (2 ≤ n ≤ 100 000) — number of cola cans.

The second line contains n space-separated integers a1, a2, ..., an (0 ≤ ai ≤ 109) — volume of remaining cola in cans.

The third line contains n space-separated integers that b1, b2, ..., bn (ai ≤ bi ≤ 109) — capacities of the cans.

Output

Print "YES" (without quotes) if it is possible to pour all remaining cola in 2 cans. Otherwise print "NO" (without quotes).

You can print each letter in any case (upper or lower).

Examples

Input

2
3 5
3 6


Output

YES


Input

3
6 8 9
6 10 12


Output

NO


Input

5
0 0 5 0 0
1 1 8 10 5


Output

YES


Input

4
4 1 0 3
5 2 2 3


Output

YES

Note

In the first sample, there are already 2 cans, so the answer is "YES".

Solution (in PYTHON3):

Solution:
class Cola:
    def __init__(self, cur_cap, max_cap):
        self.max_capacity = max_cap;
        self.current_capacity = cur_cap;
        self.isOverflowed = False;

    def can_be_filled(self, num):
        return (self.current_capacity + num) <= self.max_capacity

    def fill(self, num):
        #if current bottle can be filled with whole next bottle
        if self.can_be_filled(num):
            self.current_capacity += num
            return 0
        else:
            #if current bottle is not full, but can be filled with some of
            #the next bottle
            if(self.current_capacity < self.max_capacity):
                temp = self.current_capacity
                self.current_capacity = self.max_capacity
                return temp+num - self.max_capacity
            #if current bottle is full
            else:
                return num

    def get_cur(self):
        return self.current_capacity

    def set_cur(self, num):
        self.current_capacity = num

    def __str__(self):
        return (str(self.current_capacity) + " " + str(self.max_capacity))
    
    
number_of_cans = int(input())
cans = input()
capacities = input()

if(number_of_cans == 2):
    print("YES")
    raise SystemExit(0)

#initialize an array containing current value of cans
cans_array = []
for elem in cans.split(" "):
    cans_array.append(int(elem))

#initialize an array containing max capacity of cans
capacities_array = []
for elem in capacities.split(" "):
    capacities_array.append(int(elem))

#initialize an array of Colas according to inputs
cola_array = []
for can in range(number_of_cans):
    cola_array.append(Cola(cans_array[can], capacities_array[can]))

#sort the cola_array from biggest
cola_array.sort(key=lambda x: x.max_capacity, reverse=True)

for can in range(1, number_of_cans):
    cola_array[can].set_cur(cola_array[0].fill(cola_array[can].get_cur()))

for can in range(2, number_of_cans):
    cola_array[can].set_cur(cola_array[1].fill(cola_array[can].get_cur()))

counter = 0
for can in cola_array:
    if can.current_capacity > 0:
        counter+=1
    
if(counter<=2): print("YES")
else: print("NO")