#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int n,k;
int fsum[N],f[N];
int main(){
scanf("%d %d",&n,&k);
f[1] = 0;
for(int i=2;i<=n;i++){
f[i] = floor(log2(i - 1)) + 1;
}
fsum[1] = 0;
for(int i=2;i<=n;i++){
fsum[i] = fsum[i - 1] + f[i];
}
if(fsum[n] < k){
puts("-1");
return 0;
}
vector<int> a,b;
for(int i=n;i>=1;i--){
if(k >= f[i]){
k -= f[i];
a.push_back(i);
}
else{
b.push_back(i);
}
}
reverse(b.begin(),b.end());
for(vector<int>::iterator it=a.begin();it!=a.end();it++) printf("%d ",*it);
for(vector<int>::iterator it=b.begin();it!=b.end();it++) printf("%d ",*it);
return 0;
}