# 这道题是比较折磨的对于递归不熟悉的本人来说
# 1,先将数组分成三个组,five为被5整除的数,three为被3整除的数,other为其他。
# (这里用if和elif就包含了逻辑顺序,即题中所说的先让5去挑,“被3整除的数中不包含5”)
# 2,我们要做到事情很简单,即将other里的元素任意分配给five和three,
# 最终我们检验两个必要条件,other要全部分完,即other的长度为0,并且five和three的和相等
# 3,与递归无关的痛苦在于,怎么分?是的,这似乎没有任何答案说明,这里就是粗暴的枚举法
# (其实个人感觉跟粗暴不搭界源于数学基础),other里的每一个元素,只有两种可能,
# 要么给five要么给three,这样想通了就是2的len(other)次方中可能性,
# 所有的可能性融于计算这种分配的过程,和导致的很多的组合
# 已知3中的计算分配方法,如何求出这些可能呢? 递归就是不断重复一个操作,直到满足我们的一个状态
# 4,既然是other里的每一个元素都人人有份必须二选一的可能抛出去,我们就很容易联想到逐一分配如pop之类
# 5,所以我们设计一个函数叫cal,它的终极任务是,如果判断other为空后,判断两组和是否相同,
# 是则输出True否之相反;那么递归的不满足的开启条件是什么呢?other不为空,只要你不为空,
# 就必须一直重复cal,且一旦发现不为空,就产生两种结果(other抛球给five或者抛给three)



def cal(five,three,other):
    if len(other)==0:
        if sum(five) == sum(three):
            return True
        else:
            return False
    while len(other)>0:
        return cal(five+other[:1],three,other[1:]) or cal(five,three+other[:1],other[1:])

       
while True:
    try:
        n=int(input())
        box = map(int,input().split())
        five,three,other=[],[],[]
        for each in box:
            if each % 5 ==0:
                five.append(each)
            elif each % 3 ==0:
                three.append(each)
            else:
                other.append(each)
        if cal(five,three,other):
            print('true')
        else:
            print('false')
    except:
        break