func_code_string: #include <bits/stdc++.h>   using namespace std;   const double EPS = 1e-9;   long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }   template <typename t1>   t1 gcd(t1 a, t1 b) {     return b == 0 ? a : gcd(b, a % b);   }   template <typename t1>   t1 lcm(t1 a, t1 b) {     return a * (b / gcd(a, b));   }   int main() {     int n, d, h;     while (cin >> n >> d >> h) {       if (h == 1 && d == 1 && n > 2)         cout << -1 << endl;       else if (d < h)         cout << -1 << endl;       else if (n <= d || d > 2 * h)         cout << -1 << endl;       else if (h == d) {         {           int l = h;           int now = 1;           while (l--) {             cout << now <<     << now + 1 << endl;             now++;           }           now++;           int nnn = 2;           int tem = d + 1;           while (now <= n) {             cout << nnn <<     << now++ << endl;           }         }       } else {         int l = h;         int now = 1;         while (l--) {           cout << now <<     << now + 1 << endl;           now++;         }         now++;         int rem = d - h;         while (now <= n) {           int flag = 0;           int noww = 1;           int nrem = rem;           while (nrem--) {             if (now > n) {               flag = 1;               break;             }             cout << noww <<     << now << endl;             noww = now;             now++;           }           if (flag) break;         }       }     }   }   