#include <bits/stdc++.h>
using namespace std;
void check(const vector<int>& a, int m) {
  if (true) {
    set<int> c;
    for (int i : a) {
      c.insert(i);
    }
    int ans = 0;
    for (int i = 0; i < a.size(); ++i) {
      for (int j = i + 1; j < a.size(); ++j) {
        if (c.find(a[i] + a[j]) != c.end()) {
          ++ans;
        }
      }
    }
    if (ans != m) {
      cerr << "!!! FAIL " << ans << " " << m << endl;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n, m;
  cin >> n >> m;
  int M = m;
  vector<int> a(n, 1);
  if (n > 1) {
    a[1] = 2;
  }
  int i = 2;
  for (; i < n; ++i) {
    int v = i + 1;
    int cnt = (v - 1) / 2;
    while (cnt > m) {
      --cnt;
      v += 2;
    }
    m -= cnt;
    a[i] = v;
    if (m == 0) {
      ++i;
      break;
    }
  }
  if (m != 0) {
    cout << "-1\n";
    exit(0);
  }
  if (i < n) {
    int lv = a[i - 1];
    for (; i < n; ++i) {
      lv += 2 * n;
      a[i] = lv;
    }
  }
  for (int i : a) {
    cout << i << " ";
  }
  cout << "\n";
  return 0;
}
