#include<vector>
#include<list>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int f(int a[],int b[],int n){
  int i,j;
  int c[50];
  for(i=0;i<n;i++){
    if(b[i]!=-1&&b[i]!=a[i])
      break;
  }
  if(i==n)
    return 1;
  for(i=0;i<n&&b[i];i++);
  if(i!=n){
    for(j=0;j<i;j++){
      if(b[j]>=a[i]){
	memcpy(c,b,sizeof(c));
	c[j]-=a[i];
	if(c[j]==0)
	  c[j]=-1;
	c[i]=a[i];
	if(f(a,c,n))
	  return 1;
      }
    }
  }
  return 0;
}    
int main(){
  int h,i;
  int a[50],b[50],n;
  for(;;){
    cin>>n;
    if(n==0)
      break;
    for(i=0;i<n;i++)
      cin>>a[i];
    do{
      h=0;
      for(i=1;i<n;i++){
	if(a[i-1]<a[i]){
	  swap(a[i-1],a[i]);
	  h=1;
	}
      }
    }while(h);
    memset(b,0,sizeof(b));
    b[0]=a[0];
    if(f(a,b,n))
      cout<<"YES"<<endl;
    else
      cout<<"NO"<<endl;
  }
  return 0;
}