#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int N = 1000100;
LL n,X,maxflow,d;
int ans = 0,top = 0,cnt[N],vis[N];
void dfs(LL f)
{
if(ans) return;
if(f == 0){
sort(cnt+1,cnt+1+top);
for(int i = 1;i <= top;i++){
printf("%d ",cnt[i]);
}
printf("%d ",n);
for(int i = 1;i <= n-2;i++)
if(!vis[i]) printf("%d ",i);
printf("%d ",n-1);
ans = 1;
exit(0);
}
for(int i = 1;i <= n-2;i++)
{
if(!vis[i] && (f - ((n-1) - i) >= 0))
{
cnt[++top] = i;vis[i] = 1;
dfs(f - ((n-1)-i));
}
}
}
int main()
{
cin>>n>>X;
maxflow = (n-1)*(n-2) - (1+(n-2))*(n-2)/2;
d = maxflow - X;
if(d < 0){
printf("-1\n");
return 0;
}
dfs(d);
return 0;
}