#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using db = double;
int mod = 1000000007;
int INF = 1e9;
bool isprime[10000005];
int maxn = 10000005;
vector<int> res;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, k;
  cin >> n >> k;
  int i;
  for (i = 0; i < maxn; i++) {
    isprime[i] = true;
  }
  isprime[0] = false;
  isprime[1] = false;
  int j;
  for (i = 2; i * i < maxn; i++) {
    if (isprime[i]) {
      for (j = i * i; j < maxn; j += i) {
        if (isprime[j]) isprime[j] = false;
      }
    }
  }
  for (i = 2; i < maxn; i++) {
    if (isprime[i]) res.push_back(i);
  }
  if (n == 1) {
    if (k == 0)
      cout << "1"
           << "\n";
    else
      cout << "-1"
           << "\n";
  } else {
    if (k == 0)
      cout << "-1"
           << "\n";
    else if (n == 2) {
      cout << k << " " << 2 * k << "\n";
    } else {
      int p = n / 2;
      k = k - (p - 1);
      if (k <= 0)
        cout << "-1"
             << "\n";
      else {
        vector<int> ans;
        set<int> s;
        s.insert(k);
        ans.push_back(k);
        ans.push_back(2 * k);
        s.insert(2 * k);
        int j = 0;
        for (i = 2; i < n;) {
          if (s.find(res[j]) == s.end()) {
            ans.push_back(res[j]);
            s.insert(res[j]);
            i++;
          }
          j++;
        }
        for (i = 0; i < n; i++) {
          cout << ans[i] << " ";
        }
        cout << "\n";
      }
    }
  }
}
