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


int n,beaker[51] , cur[51] = {};

int dfs(int p,int t,int i){
	/*for(int i = 0 ; i < n ; i++)
		cout << beaker[i] << "-";
	cout << endl;
	for(int i = 0 ; i < n ; i++)
		cout << cur[i] << " ";
	cout << "[" << p << "," << t << "]" << endl;
	*/
	if( p == n-1){
		return cur[p] != 0;
	}
	if( t == 0 && cur[p] == 0) return 0;
	if( t != 0 && cur[p] == 0 ){ return dfs(p+1,0,p+2); }
	if( t == 0 && dfs(p+1,0,p+2) ) return true;
	if( i < n){
		if( beaker[i] <= cur[p] ){
			if( cur[i] == 0 ){
				cur[p] -= beaker[i];
				cur[i] = beaker[i];
				if( dfs(p,t+1,i+1) ) return true;
				cur[i] = 0;
				cur[p] += beaker[i];
			}
		}
		if( dfs(p,t+1,i+1) ) return true;
	}
	
	return false;
}
int main(){
	while(cin >> n && n){
		for(int i = 0 ; i < n ; i++){
			cin >> beaker[i];
		}
		sort(beaker,beaker+n);
		reverse(beaker,beaker+n);
		for(int i = 0 ; i < n ; i++)
			cur[i] = 0;
		cur[0] = beaker[0];
		
		cout << (dfs(0,0,1)?"YES" : "NO") << endl;
	}
}