#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int sum[MAXN << 2];
int dat[MAXN];
int cnt;
void pushup(int rt) { sum[rt] += sum[rt * 2] + sum[rt * 2 + 1]; }
void build(int l, int r, int rt) {
  if (l == r) {
    sum[rt] = 0;
    return;
  }
  cnt++;
  sum[rt] = 1;
  int mid = l + r - 1 >> 1;
  build(l, mid, rt << 1);
  build(mid + 1, r, rt << 1 | 1);
  pushup(rt);
}
void solve(int l, int r, int rt, int k) {
  if (l == r || k == 0) return;
  int mid = l + r - 1 >> 1;
  for (int i = l, k = mid + 1; i <= mid; i++, k++) swap(dat[i], dat[k]);
  k -= 2;
  int tt = sum[rt * 2];
  tt *= 2;
  if (tt <= k) {
    int mm = mid - l + 1;
    mm /= 2;
    for (int j = 0; j < mm; j++) swap(dat[l + j], dat[mid - j]);
    solve(mid + 1, r, rt << 1 | 1, k - tt);
  } else {
    solve(l, mid, rt << 1, k);
  }
}
int main() {
  int n, k;
  cnt = 0;
  scanf("%d%d", &n, &k);
  build(1, n, 1);
  cnt *= 2;
  cnt++;
  if (k % 2 == 1 && k >= 1 && k <= cnt) {
    for (int i = 1; i <= n; i++) dat[i] = i;
    solve(1, n, 1, k - 1);
    for (int i = 1; i <= n; i++) printf("%d ", dat[i]);
    printf("\n");
  } else
    printf("-1\n");
  return 0;
}
