#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n,t,sum=0;
    cin>>n;
    vector<int> nums;nums.reserve(n);
    //由于背包容量要最后才知道,这道题没有办不保存原数组
    while(n-- &&cin>>t){
        nums.push_back(t);
        sum+=t;
    }
    if(sum%2){
        cout<<"false"<<endl;//奇数,无解
        return 0;
    }
    sum/=2;
    vector<bool> dp(sum+1,false);
    int i,j,boundary,curMax=0;
    dp[0]=true;
    //只是判断是否有解,不需要用二维数组来dp

    for(i=0;i<nums.size();++i){
        boundary=min(sum-nums[i],curMax);
        for(j=boundary;j>=0;--j){
            
            if(dp[j]){
                dp[j+nums[i]]=true;
                curMax=max(j+nums[i],curMax);
                if(j+nums[i]==sum)break;
            }
        }
        
    }

    cout<<(dp[sum]?"true":"false")<<endl;

}
// 64 位输出请用 printf("%lld")