We have a sequence of length N, a = (a_1, a_2, ..., a_N). Each a_i is a positive integer.

Snuke's objective is to permute the element in a so that the following condition is satisfied:

* For each 1 ≤ i ≤ N - 1, the product of a_i and a_{i + 1} is a multiple of 4.



Determine whether Snuke can achieve his objective.

Constraints

* 2 ≤ N ≤ 10^5
* a_i is an integer.
* 1 ≤ a_i ≤ 10^9

Input

Input is given from Standard Input in the following format:


N
a_1 a_2 ... a_N


Output

If Snuke can achieve his objective, print `Yes`; otherwise, print `No`.

Examples

Input

3
1 10 100


Output

Yes


Input

4
1 2 3 4


Output

No


Input

3
1 4 1


Output

Yes


Input

2
1 1


Output

No


Input

6
2 7 1 8 2 8


Output

Yes
# -*- coding: utf-8 -*-

N = int(raw_input())
a = map(int, raw_input().split())

def is_odd(n):
    return True if (n%2!=0) else False

def is_s_even(n):
    return True if (n%4!=0 and n%2==0) else False

def is_w_even(n):
    return True if (n%4==0) else False

# 奇数配列p[] 4の倍数配列r[] どちらもない配列q[]
p, q, r = [], [], []
for i in range(N):
    if is_odd(a[i]):
        p.append(a[i])
    elif is_w_even(a[i]):
        r.append(a[i])
    else:
        q.append(a[i])

# 条件を満たすように並べる配列s[]
s = []
if len(p) > 0:
    s.append(p.pop())
elif len(q) > 0:
    s.append(q.pop())
else:
    s.append(r.pop())

for i in range(1,N):
    if is_odd(s[i-1]):
        if len(r) > 0:
            s.append(r.pop())
        else:
            print 'No'
            exit()
    elif is_s_even(s[i-1]):
        if len(q) > 0:
            s.append(q.pop())
        elif len(r) > 0:
            s.append(r.pop())
        else:
            print 'No'
            exit()
    else:
        if len(p) > 0:
            s.append(p.pop())
        elif len(q) > 0:
            s.append(q.pop())
        elif len(r) > 0:
            s.append(r.pop())
            
print 'Yes'
