#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100500;
struct frac {
  long long u, l;
  frac(long long u = 0, long long l = 1) : u(u), l(l) {}
  bool operator<(const frac a) const { return u * a.l < a.u * l; }
};
pair<frac, frac> Inter(pair<frac, frac> a, pair<frac, frac> b) {
  return make_pair(max(a.first, b.first), min(a.second, b.second));
}
int n;
vector<long long> V;
vector<pair<frac, frac> > I;
int main() {
  while (scanf("%d", &n) == 1) {
    V.resize(n);
    for (int i = (0); i < (int)(n); i++) scanf("%lld", &V[i]);
    I.clear();
    long long gap = V[0];
    for (int i = (0); i < (int)(n); i++) {
      I.push_back(make_pair(frac(V[i], i + 1), frac(V[i] + 1, i + 1)));
    }
    pair<frac, frac> Ans = I[0];
    for (int i = (1); i < (int)(n); i++) Ans = Inter(Ans, I[i]);
    n++;
    long long L = (Ans.first.u * n) / Ans.first.l,
              R = (Ans.second.u * n - 1) / Ans.second.l;
    if (L == R)
      printf("unique\n%lld\n", L);
    else
      printf("not unique\n");
  }
  return 0;
}
