#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
void solve() {
int n;
while (cin >> n && n != 0) {
vector<long long> d(n);
long long sum = 0;
for (int i = 0; i < n; ++i) {
cin >> d[i];
sum += d[i];
}
// 條件 1:總和必須為偶數
if (sum % 2 != 0) {
cout << "N\n";
continue;
}
// 由大到小排序
sort(d.rbegin(), d.rend());
// 條件 2:檢查 Erdős-Gallai 不等式
bool possible = true;
long long left_sum = 0;
for (int k = 1; k <= n; ++k) {
left_sum += d[k - 1]; // 1-indexed 的前 k 項和
long long right_sum = (long long)k * (k - 1);
for (int i = k + 1; i <= n; ++i) {
right_sum += min(d[i - 1], (long long)k);
}
if (left_sum > right_sum) {
possible = false;
break;
}
}
cout << (possible ? "Y\n" : "N\n");
}
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
solve();
return 0;
}