func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX = int(5e3);   const int MOD = int(1e9 + 7);   const int oo = INT_MAX;   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int n, d, h;     while (cin >> n >> d >> h) {       if (2 * h < d) {         cout << -1 <<   n ;         continue;       }       vector<pair<int, int> > edges;       for (int i = 2; i <= h + 1; i++) {         if (i > n) continue;         edges.push_back({i - 1, i});       }       for (int i = h + 2; i <= d + 1; i++) {         if (i > n) continue;         if (i == h + 2)           edges.push_back({1, i});         else           edges.push_back({i - 1, i});       }       int id = d + 2, node = -1;       if (h < d)         node = 1;       else if (h == d && h != 1)         node = 2;       if (node != -1) {         while (id <= n) {           edges.push_back({node, id});           id++;         }       }       if (int(edges.size()) == n - 1)         for (auto& e : edges) cout << e.first <<     << e.second <<   n ;       else         cout << -1 <<   n ;     }     return 0;   }   