#include <bits/stdc++.h>   using namespace std;   const long long INF = 1e9 + 7;   const int N = 5e3 + 10;   vector<double> vd;   int flag = 0;   vector<int> check(double x, int sz) {     vector<int> v;     int cur = 0;     double tot = x;     while (v.size() < sz) {       int o = tot / 10;       cur += o;       v.push_back(cur);       tot -= o * 10;       if (v.size() == sz) break;       tot += x;     }     if (flag) vd.push_back(tot);     return v;   }   double solve(vector<int>& v1, int o = 0) {     double l = 10 + 1e-10;     double r = INF;     int cnt = 200;     while (cnt--) {       double mid = (l + r) / 2;       auto v2 = check(mid, v1.size());       for (int i = 0; i < v1.size(); i++) {         if (v1[i] < v2[i]) {           r = mid;           break;         }         if (v1[i] > v2[i]) {           l = mid;           break;         }       }       if (v1 != v2) continue;       if (o == 0)         l = mid;       else         r = mid;     }     return l;   }   int main() {     int n;     cin >> n;     vector<int> v(n);     for (auto& x : v) cin >> x;     double key1 = solve(v, 0);     double key2 = solve(v, 1);     flag = 1;     if (key1 > key2) swap(key1, key2);     int ans1 = check(key1, n + 1).back();     int ans2 = check(key2, n + 1).back();     if (abs(vd[0] - 10) <= 1e-8) ans1++;     if (ans1 == ans2)       puts( unique ), printf( %d n , ans1), exit(0);     else       puts( not unique );     return 0;   }   