func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /stack:640000000 )   using namespace std;   const double EPS = 1e-9;   const int INF = 0x7f7f7f7f;   const double PI = acos(-1.0);   template <class T>   inline T _abs(T n) {     return ((n) < 0 ? -(n) : (n));   }   template <class T>   inline T _max(T a, T b) {     return (!((a) < (b)) ? (a) : (b));   }   template <class T>   inline T _min(T a, T b) {     return (((a) < (b)) ? (a) : (b));   }   template <class T>   inline T _swap(T& a, T& b) {     a = a ^ b;     b = a ^ b;     a = a ^ b;   }   template <class T>   inline T gcd(T a, T b) {     return (b) == 0 ? (a) : gcd((b), ((a) % (b)));   }   template <class T>   inline T lcm(T a, T b) {     return ((a) / gcd((a), (b)) * (b));   }   template <typename T>   string NumberToString(T Number) {     ostringstream second;     second << Number;     return second.str();   }   struct debugger {     template <typename T>     debugger& operator,(const T& v) {       cerr << v <<    ;       return *this;     }   } dbg;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     while (cin >> n) {       priority_queue<pair<int, string> > pq;       for (int i = (int)(1); i <= (int)(n); i++) {         string st;         int no;         cin >> st >> no;         pq.push(make_pair(-no, st));       }       vector<pair<int, string> > v;       int hh = 1;       int flg = 1;       while (!pq.empty()) {         pair<int, string> p = pq.top();         pq.pop();         p.first *= -1;         if (p.first == 0) {           v.push_back(make_pair(hh, p.second));           hh++;           continue;         }         vector<int> tmp;         for (int i = (int)(0); i <= (int)((int)v.size() - 1); i++) {           tmp.push_back(v[i].first);         }         sort(tmp.rbegin(), tmp.rend());         if (tmp.size() < p.first) {           flg = 0;           break;         }         int tmpNo = tmp[p.first - 1];         for (int i = (int)(0); i <= (int)((int)v.size() - 1); i++) {           if (v[i].first >= tmpNo) v[i].first += 1;         }         v.push_back(make_pair(tmpNo, p.second));       }       if (flg) {         for (int i = (int)(0); i <= (int)(n - 1); i++) {           cout << v[i].second <<     << v[i].first <<   n ;         }       } else         printf( -1 n );     }     return 0;   }   