def f(n,k): #n%2==1 and k>n*(n-1)//2 if k>(n**2-3)//2: return [-1] ans=[0]*n m=(n**2-3)//2-k+n//2+2 for i in range(n//2): if n//2+2+i==m: ans[2*i]=n//2+2 else: ans[2*i]=n//2+2+i ans[2*i+1]=i+1 ans[n-1]=n//2+1 ans[0]=m print(m) return ans def f2(n,k): #n%2==0 and k>n*(n-1)//2 if k>n**2//2-1: return [-1] ans=[0]*n m=n**2//2-k+n//2 for i in range(n//2): if n//2+1+i==m: ans[2*i]=n//2+1 else: ans[2*i]=n//2+1+i ans[2*i+1]=i+1 ans[0]=m return ans def g(n,k): #k<=n*(n-1)//2 used=[1]*(n+1) used[n]=0 k-=n-1 ans=[n] L=n for i in range(n-2): if i%2==0: a=i//2+2 else: a=n-(i+1)//2 if k>=abs(L-a): k-=abs(L-a) L=a used[a]=0 ans.append(a) ans2=[] for i in range(1,n): if used[i]: ans2.append(i) return ans2+ans n,k=map(int,input().split()) if kn*(n-1)//2: print(*f(n,k)) else: print(*g(n,k)) else: if k>n*(n-1)//2: print(*f2(n,k)) else: print(*g(n,k))