func_code_string: #ifdef Prateek     #include  Prateek.h    #else     #include <bits/stdc++.h>     using namespace std;     #define debug(...) 42   #endif   #define int ll   #define all(c) begin(c),end(c)   using ll = long long;   const int MOD = 1e9+7, N = 1e5 + 10;       struct edge{      int u, v, w;   };      int32_t main(){      ios::sync_with_stdio(false);      cin.tie(NULL);      int L, R;      cin >> L >> R;      int B = L - 1;      int D = R - L + 1;      int k = 30;      while (!(D >> k & 1)) --k;      int mxN = k + 2;      vector<edge> Edge;         auto add = [&](int u, int v, int wt) {         Edge.push_back({u, v, wt});      };         for (int i = 2; i <= mxN; ++i) {         add(1, i, 1);         int pw = 1;         for (int j = 2; j < i; ++j) {            add(j, i, pw);            pw *= 2;         }      }         cout <<  YES n ;         if (D - (1 << k) == 0) {         if (B) {            mxN++;            Edge.push_back({mxN - 1, mxN, B});         }         cout << mxN <<     << Edge.size() <<   n ;         for (auto [u, v, w] : Edge) {            cout << u <<     << v <<     << w <<   n ;         }         return 0;      }         mxN++;      --D;      add(1, mxN, 1);      for (int i = 0; i <= k; ++i) {         if (D >> i & 1) {            D -= (1 << i);            add(i + 2, mxN, D + 1);         }      }            if (B) {         mxN++;         Edge.push_back({mxN - 1, mxN, B});      }      cout << mxN <<     << Edge.size() <<   n ;      for (auto [u, v, w] : Edge) {         cout << u <<     << v <<     << w <<   n ;      }      return 0;   }