#55340: c++


yp11451267@yphs.tp.edu.tw (705-43鄭丞博)


#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;
}