func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int n, d, h;     cin >> n >> d >> h;     if (d > 2 * h || d < h) {       cout <<  -1  << endl;       return 0;     }     if (d == 1 && h == 1 && n != 2) {       cout <<  -1  << endl;       return 0;     }     vector<pair<int, int> > p;     for (int i = 0; i < h; i++) {       p.push_back(pair<int, int>(i + 1, i + 2));     }     if (d - h > 0) {       p.push_back(pair<int, int>(1, h + 2));       for (int i = 1; i < d - h; i++) {         p.push_back(pair<int, int>(h + 1 + i, h + 2 + i));       }     }     if (d + 1 > n) {       cout <<  -1  << endl;       return 0;     }     if (h != 1) {       for (int i = d + 2; i <= n; i++) {         p.push_back(pair<int, int>(2, i));       }     } else {       for (int i = d + 2; i <= n; i++) {         p.push_back(pair<int, int>(1, i));       }     }     for (int i = 0; i < p.size(); i++) {       cout << p[i].first <<     << p[i].second << endl;     }     return 0;   }   