func_code_string: #include <bits/stdc++.h>   using namespace std;   using ll = long long;   using vi = vector<int>;   using pii = pair<int, int>;   using pll = pair<ll, ll>;   template <typename T>   using vec = vector<T>;   template <typename T>   using Prior = priority_queue<T>;   template <typename T>   using prior = priority_queue<T, vector<T>, greater<T>>;   const int INF = 1e9;   const int nINF = -1e9;   const ll llINF = 4 * 1e18;   const int MOD = 1e9 + 7;   ll& pmod(ll& a, ll b) {     a = (a + b) % MOD;     return a;   }   ll& pmod(ll& a, ll b, ll c) {     a = (a + b) % c;     return a;   }   ll& mmod(ll& a, ll b) {     a = (a - b + MOD) % MOD;     return a;   }   ll& mmod(ll& a, ll b, ll c) {     a = (a - b + c) % c;     return a;   }   ll& tmod(ll& a, ll b) {     a = (a * b) % MOD;     return a;   }   ll mul(ll a, ll b) { return (a * b) % MOD; }   ll mul(ll a, ll b, ll c) { return (a * b) % c; }   ll POW(ll a, ll b) {     ll res = 1;     do {       if (b % 2) tmod(res, a);       tmod(a, a);     } while (b >>= 1);     return res;   }   ll FAC(ll a) {     ll res = 1;     for (int i = 1; i <= a; i++) tmod(res, i);     return res;   }   template <typename T1, typename T2>   ostream& operator<<(ostream& out, pair<T1, T2> a) {     cout << a.first <<     << a.second;     return out;   }   int main() {     ios_base::sync_with_stdio(false), cin.tie(0);     int n, d, t;     cin >> n >> d >> t;     if ((d == 1 and n != 2) or t < (d + 1) / 2)       cout << -1;     else {       int tmp = 1, count = 2;       for (int i = 0; i < t; i++) {         cout << tmp <<     << count <<   n ;         tmp = count;         count++;       }       tmp = 1;       for (int i = 0; i < d - t; i++) {         cout << tmp <<     << count <<   n ;         tmp = count;         count++;       }       for (; count <= n; count++)         cout << (t == d ? 2 : 1) <<     << count <<   n ;     }   }   