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

int main(){
  int n;
  while(cin >> n, n){
    vector<int> C(n);
    for(int i = 0; i < n; ++i) cin >> C[i];
    sort(C.rbegin(), C.rend());
    vector<bool> used(n,false);
    used[0] = true;
    for(int i = 0; i < n; ++i){
      if(not used[i]) continue;
      int c = C[i];
      vector<bool> dp(c+1,false);
      dp[0] = true;
      for(int j = i+1; j < n; ++j){
        for(int k = c-C[j]; k >= 0; --k){
          if(used[j]) continue;
          dp[k+C[j]] = dp[k+C[j]]|dp[k];
        }
      }
      for(int j = i+1; j < n; ++j){
        if(used[j]) continue;
        if(dp[c-C[j]]) used[j] = true;
      }
    }
    bool f = true;
    for(auto b : used){
      f &= b;
    }
    if(f) cout << "YES" << endl;
    else cout << "NO" << endl;
  }
}

