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*).
import collections


n = int(input())
ns = (sorted(map(int, str.split(input())), reverse=True))
if 2 in ns or ns[0] != len(ns):

    print("NO")
    exit()


def weight(t, x):

    return 1 + sum(map(lambda i: weight(t, i), t[x]))


def yoba(ns, t=None):

    if t is None:

        t = {}
        t[0] = []

    if len(t) == len(ns) and all(map(lambda i: weight(t, i) == ns[i] and len(t[i]) != 1, range(len(ns)))):

        yield t

    for i in range(len(ns)):

        if i not in t:

            for p in t:

                if weight(t, p) < ns[p]:

                    t[p].append(i)
                    t[i] = []
                    yield from yoba(ns, t)
                    t[p].pop()
                    del t[i]

for a in yoba(ns):

    print("YES")
    break

else:

    print("NO")
