#include <iostream>
#include <iterator> // for ostream_iterator
#include <vector>
int n, x;
std::vector<int> a = std::vector<int>(), b = std::vector<int>();
int main() {
std::cin >> n >> x;
for (int i = 1; i <= n && x; ++i) {
switch (x % 3) {
case 1: b.push_back(i); break;
case 2: a.push_back(i); break;
}
x = (x + 1)/3;
}
if (x) { std::cout << -1; return 0; }
std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
std::copy(b.begin(), b.end(), std::ostream_iterator<int>(std::cout, " "));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+IC8vIGZvciBvc3RyZWFtX2l0ZXJhdG9yCiNpbmNsdWRlIDx2ZWN0b3I+CgppbnQgbiwgeDsKc3RkOjp2ZWN0b3I8aW50PiBhID0gc3RkOjp2ZWN0b3I8aW50PigpLCBiID0gc3RkOjp2ZWN0b3I8aW50PigpOwoKaW50IG1haW4oKSB7CglzdGQ6OmNpbiA+PiBuID4+IHg7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuICYmIHg7ICsraSkgewogICAgCXN3aXRjaCAoeCAlIDMpIHsKICAgIAkJY2FzZSAxOiBiLnB1c2hfYmFjayhpKTsgYnJlYWs7CiAgICAJCWNhc2UgMjogYS5wdXNoX2JhY2soaSk7IGJyZWFrOwogICAgCX0KICAgIAl4ID0gKHggKyAxKS8zOwogICAgfQogICAgaWYgKHgpIHsgc3RkOjpjb3V0IDw8IC0xOyByZXR1cm4gMDsgfQogICAgc3RkOjpjb3B5KGEuYmVnaW4oKSwgYS5lbmQoKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCAiICIpKTsKICAgIHN0ZDo6Y291dCA8PCAiXG4iOwogICAgc3RkOjpjb3B5KGIuYmVnaW4oKSwgYi5lbmQoKSwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCAiICIpKTsKCXJldHVybiAwOwp9Cg==