#include <iostream>
using namespace std;
int num[50],a[50],n,g;

int search(int s) {
	int i,k;
	if (s==n) { if (g==0) return 1; else return 0; }
	for (i=0;i<s;i++) if (a[i]>=a[s] && (a[i]-a[s]>=num[n-1] || a[i]-a[s]==0)) {
		a[i]-=a[s];
		if ((a[i]+a[s])>0 && (a[i]+a[s])!=num[i] && a[i]==0) g--;   
		if (a[i]+a[s]==num[i] && a[i]>0) g++; 
		k=search(s+1);
		if (k==1) return 1; else { 
			if (a[i]+a[s]==num[i] && a[i]>0) g--;
			if ((a[i]+a[s])>0 && (a[i]+a[s])!=num[i] && a[i]==0) g++;
			a[i]+=a[s];  }
	}
	return 0;
}
int main() {
	int i,j,k,s;
	while(cin >> n) {
		if (n==0) break;
		for (i=0;i<n;i++) cin >> num[i];
		for (i=n-1;i>0;i--) for (j=0;j<i;j++) if (num[j]<num[j+1]) { k=num[j]; num[j]=num[j+1]; num[j+1]=k;}
		s=g=0;
		for (i=0;i<n;i++) { a[i]=num[i]; s+=a[i]; }
		if (n>1 && (a[0]>s-a[0])) cout << "NO" << endl;
		else if (search(1)==1) cout << "YES" << endl; else cout << "NO" << endl;
	}
	return 0;
}