#include <bits/stdc++.h>
using namespace std;
int i, i0, n, m, a[50005], pre[50005], M;
set<int> s;
void deb() {
  s.clear();
  int res = 0;
  for (int i = 1; i <= n; i++) s.insert(a[i]);
  for (int i = 1; i <= n; i++) {
    for (int i0 = i + 1; i0 <= n; i0++) {
      res += s.count(a[i] + a[i0]);
    }
  }
  printf("%d %d----\n", res, M);
}
void out() {
  for (int i = 1; i <= n; i++) printf("%d ", a[i]);
  printf("\n");
}
int main() {
  scanf("%d %d", &n, &m);
  M = m;
  if ((int)((n - 1) * (n - 1) / 4.0) < m)
    printf("-1\n");
  else {
    int ff = 0;
    for (int i = 1; i <= n; i++) {
      if (ff)
        a[i] = (int)1e9 - (n + 5) * 5005 + i * 5005;
      else
        a[i] = i;
      if ((i - 1) / 2 > m) {
        ff = 1;
        for (int i0 = 1; i0 < i; i0++) {
          if ((i - i0) / 2 == m) {
            a[i] += i0 - 1;
            break;
          }
        }
      } else
        m -= (i - 1) / 2;
    }
    out();
  }
  return 0;
}
