func_code_string: #include <bits/stdc++.h>   using namespace std;   bool endline = false;   template <class T>   istream& operator>>(istream& inp, vector<T>& v) {     for (auto& it : v) inp >> it;     return inp;   }   template <class T>   ostream& operator<<(ostream& out, vector<T>& v) {     for (auto& it : v) out << it << (endline ?   n  :    );     return out;   }   template <class T, class U>   istream& operator>>(istream& inp, pair<T, U>& v) {     inp >> v.first >> v.second;     return inp;   }   template <class T, class U>   ostream& operator<<(ostream& out, pair<T, U>& v) {     out << v.first <<     << v.second;     return out;   }   const int mod1 = 998244353, mod = 1e9 + 7;   const int MAXN = 1e6 + 6, MAXM = 5e5 + 5;   const int inf = 2e9;   const long long linf = 1e18;   long long n, m, a[5050];   void Solve() {     cin >> n >> m;     long long tmp = 0, i;     for (i = 1; i <= n; i++) {       if (tmp + (i - 1) / 2 < m) {         a[i] = i;         tmp += (i - 1) / 2;       } else {         long long gap = m - tmp;         if (gap == 0) {           a[i] = i;         } else {           a[i] = a[i - 1] + a[i - 2 * gap];         }         tmp += gap;         i++;         break;       }     }     if (tmp < m) {       cout << -1;       return;     }     for (; i <= n; i++) {       a[i] = 1e8 + i * i;     }     for (i = 1; i <= n; i++) {       cout << a[i] <<    ;     }   }   signed main() {     if (fopen(                  .inp ,                r )) {       freopen(                         .inp ,            r , stdin);       freopen(                         .out ,            w , stdout);     };     std::ios::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     long long TC = 1;     while (TC--) Solve();     return 0;   }   