#include #define rep(i, n) for (int i = 0; i < (int) n; i++) using ll = long long; using namespace std; const long long INF = 1ll << 60; int main() { ll n; cin >> n; vector a(n - 1, 0); rep(i, n - 1) cin >> a[i]; vector unsorted = a; sort(a.begin(), a.end()); ll current = 1; vector> log(n + 1); rep(i, n - 1) { ll j = current + 1 - a[i]; if (j >= 1) { log[a[i]].push_back(j); current++; } else { cout << "NO" << endl; return 0; } } cout << "YES" << endl; for (auto ai:unsorted) { cout << log[ai].back() << endl; log[ai].pop_back(); } }