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

int n;
int beaker[128];
bool filled[128];
bool used[128];

bool check();

bool pour(int vol, int indx) {
	if(vol == 0)
		return true;
	if(vol < 0)
		return false;
	if(indx >= n)
		return false;

	if(!filled[indx] && !used[indx] && beaker[indx] <= vol) {
		filled[indx] = used[indx] = true;
		if(pour(vol - beaker[indx], indx + 1))
			return true;
		filled[indx] = used[indx] = false;
	}

	if(pour(vol, indx + 1))
		return check();

	return false;
}

bool check() {
	for(int i = 0; i < n; i++) {
		if(filled[i]) {
			if(pour(beaker[i], i + 1))
				return true;
		}
		else if(!used[i]) {
			return false;
		}
	}
	return true;
}

int main() {
	while(cin >> n, n) {
		for(int i = 0; i < n; i++)
			cin >> beaker[i];

		sort(beaker, beaker + n, greater<int>());
		for(int i = 0; i < 128; i++) {
			filled[i] = used[i] = false;
		}
		filled[0] = used[0] = true;

		if(check())
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
	}
}