#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  for (; b; a %= b, swap(a, b))
    ;
  return a;
}
long long n, m;
int main() {
  cin >> n >> m;
  if (n == 1 && m == 0) {
    cout << 1;
    return 0;
  }
  if (n == 2 && m == 0) {
    cout << "1 2";
    return 0;
  }
  long long mx = 0;
  for (long long i = 3; i <= n; i++) {
    mx += (i - 3) / 2 + 1;
  }
  if (m > mx) {
    cout << -1;
    return 0;
  }
  long long bal = 0;
  vector<int> ans;
  ans.push_back(1);
  ans.push_back(2);
  for (long long i = 3; i <= n; i++) {
    long long tmp = (i - 3) / 2 + 1;
    if (bal + tmp >= m) {
      ans.push_back(i + (tmp + bal - m) * 2);
      break;
    } else {
      ans.push_back(i);
      bal += tmp;
    }
  }
  long long big = ans.back() + 1;
  long long tmp = 1000000000;
  while (ans.size() < n) {
    ans.push_back(tmp);
    tmp -= big;
  }
  sort(ans.begin(), ans.end());
  for (auto it : ans) cout << it << ' ';
}
