#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
int n;
int c[30];
bool found = false;
// index: 当前处理的自由数字索引
// sum_a: a组当前和
// sum_b: b组当前和
// free_nums: 自由数字数组
// free_count: 自由数字个数
void dfs(int index, long long sum_a, long long sum_b, int free_nums[], int free_count) 
{
    if (found) return; // 如果已找到解,直接返回
    if (index == free_count) 
    { // 所有自由数字已分配完
        if (sum_a == sum_b) 
        {
            found = true;
        }
        return;
    }
    // 将当前自由数字加入a组
    dfs(index + 1, sum_a + free_nums[index], sum_b, free_nums, free_count);
    // 将当前自由数字加入b组
    dfs(index + 1, sum_a, sum_b + free_nums[index], free_nums, free_count);
}
int main() 
{
    scanf("%d", &n);
    for (int i = 0; i < n; i++) 
    {
        scanf("%d", &c[i]);
    }
    long long sum_a = 0, sum_b = 0;
    int free_nums[30];
    int free_count = 0;
    // 首先处理必须分配的数字
    for (int i = 0; i < n; i++) 
    {
        if (c[i] % 5 == 0) 
        {
            // 5的倍数必须加入a组
            sum_a += c[i];
        } else if (c[i] % 3 == 0 && c[i] % 5 != 0) 
        {
            // 3的倍数且不是5的倍数必须加入b组
            sum_b += c[i];
        } 
        else 
        {
            // 其他数字为自由数字
            free_nums[free_count++] = c[i];
        }
    }
    // 使用DFS尝试所有自由数字的分配方案
    dfs(0, sum_a, sum_b, free_nums, free_count);
    // 输出结果
    printf("%s\n", found ? "true" : "false");
    return 0;
}