M,K=gets.split.map(&:to_i)
if M==0
    puts K==0 ? "0 0" : -1
elsif M==1
    puts K==0 ? "1 0 0 1" : -1
else
    if 2**M<=K
        puts -1
        exit
    end
    ans=[]
    (2**(M)).times do |i|
        ans << i if i!=K
    end
    rev=ans.reverse
    ans << K
    ans+=rev+[K]
    puts ans.join(" ")
end
