func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 3e5 + 20;   const int inf = 0x3f3f3f3f;   const int modd = 1e9 + 7;   inline int read() {     int x = 0, f = 1;     char c = getchar();     while (c !=  -  && (c <  0  || c >  9 )) c = getchar();     if (c ==  - ) f = -1, c = getchar();     while (c >=  0  && c <=  9 ) x = x * 10 + c -  0 , c = getchar();     return f * x;   }   template <class T>   inline void sc(T &x) {     char c;     x = 0;     while ((c = getchar()) <  0 )       ;     while (c >=  0  && c <=  9 ) x = x * 10 + (c - 48), c = getchar();   }   inline long long gcd(long long a, long long b) {     return b == 0 ? a : gcd(b, a % b);   }   inline long long exgcd(long long a, long long b, long long &x, long long &y) {     long long d;     (b == 0 ? (x = 1, y = 0, d = a)             : (d = exgcd(b, a % b, y, x), y -= a / b * x));     return d;   }   inline long long qpow(long long a, long long n) {     long long sum = 1;     while (n) {       if (n & 1) sum = sum * a % modd;       a = a * a % modd;       n >>= 1;     }     return sum;   }   inline long long qmul(long long a, long long n) {     long long sum = 0;     while (n) {       if (n & 1) sum = (sum + a) % modd;       a = (a + a) % modd;       n >>= 1;     }     return sum;   }   inline long long inv(long long a) { return qpow(a, modd - 2); }   int a[maxn];   int main() {     int n, m;     scanf( %d%d , &n, &m);     if (m && n < 3) return printf( -1 n ), 0;     int i = 1;     for (; i <= n;) {       if (m >= (i - 1) / 2) {         a[i] = i, m -= (i - 1) / 2;         i++;         continue;       }       if (m > 0) a[i] = 2 * (i - m) - 1, m = 0, i++;       if (!m) break;     }     for (int j = n; j >= i; j--) a[j] = (int)9e8 - (n - j) * (a[i - 1] + 1);     if (!m) {       for (int i = 1; i <= n; i++) printf( %d%c , a[i],    n [i == n]);       return 0;     }     printf( -1 n );   }   