Iahub and Iahubina went to a picnic in a forest full of trees. Less than 5 minutes passed before Iahub remembered of trees from programming. Moreover, he invented a new problem and Iahubina has to solve it, otherwise Iahub won't give her the food. 

Iahub asks Iahubina: can you build a rooted tree, such that
 -  each internal node (a node with at least one son) has at least two sons; -  node *i* has *c*<sub class="lower-index">*i*</sub> nodes in its subtree? 
Iahubina has to guess the tree. Being a smart girl, she realized that it's possible no tree can follow Iahub's restrictions. In this way, Iahub will eat all the food. You need to help Iahubina: determine if there's at least one tree following Iahub's restrictions. The required tree must contain *n* nodes.
The first line of the input contains integer *n* (1 ≤ *n* ≤ 24). Next line contains *n* positive integers: the *i*-th number represents *c*<sub class="lower-index">*i*</sub> (1 ≤ *c*<sub class="lower-index">*i*</sub> ≤ *n*).
from queue import Queue
from sys import stdin, stdout

def read():
    return stdin.readline().rstrip()

def readints():
    return [int(x) for x in read().split()]

def solve(at, n, size, used):

    if size[at] == 1:
        return True

    left = size[at] - 1
    children = 0

    for i in range(at + 1, n):
        if used[i]:
            continue

        if size[i] <= left and size[i] < size[at] - 1:
            used[i] = True
            children += 1
            ret = solve(at + 1, n, size, used)
            used[i] = False
            if not ret:
                return False
            left -= size[i]

    return left == 0 and children > 1

n = readints()[0]
size = readints()
used = [False] * n

size = sorted(size, reverse=True)
solution = solve(0, n, size, used)
print(["NO", "YES"][solution])
