#include <cmath>
#include <iomanip>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
void init(ll x, vector<int> &A){
int curIndex = 0;
int curPower = 1;
while(true){
A[curIndex] = x % 3;
x = (x-A[curIndex])/3;
if (x == 0) break;
curIndex++;
}
}
int main(int argc, char const *argv[])
{
vector<int> A(21, 0);
vector<int> B(21, 0);
int n;
ll x;
cin >> n >> x;
//check feasibility
if (x > static_cast<ll>((pow(3, n)-1)/2)) {
cout << -1 << endl;
return 0;
}
//initialize value of A with digits of x in base-3 representation
init(x, A);
for(int i = 0; i < 21; i++){
if (A[i] == 0){
//nothing
continue;
}
if (A[i] == 1){
A[i] = 0;
B[i] = 1;
continue;
}
if (A[i] == 2){
A[i] = 1;
A[i+1]++;
continue;
}
if (A[i] == 3){
A[i+1]++;
continue;
}
}
int i;
i = 1;
for(auto it: A){
if (it == 1) cout << i << " ";
i++;
}
cout << endl;
i = 1;
for(auto it: B){
if (it == 1) cout << i << " ";
i++;
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKdm9pZCBpbml0KGxsIHgsIHZlY3RvcjxpbnQ+ICZBKXsKCWludCBjdXJJbmRleCA9IDA7CglpbnQgY3VyUG93ZXIgPSAxOwoJd2hpbGUodHJ1ZSl7CgkJQVtjdXJJbmRleF0gPSB4ICUgMzsKCQl4ID0gKHgtQVtjdXJJbmRleF0pLzM7CgkJaWYgKHggPT0gMCkgYnJlYWs7CgkJY3VySW5kZXgrKzsKCX0KfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoJdmVjdG9yPGludD4gQSgyMSwgMCk7Cgl2ZWN0b3I8aW50PiBCKDIxLCAwKTsKCWludCBuOwoJbGwgeDsKCWNpbiA+PiBuID4+IHg7CgkvL2NoZWNrIGZlYXNpYmlsaXR5CglpZiAoeCA+IHN0YXRpY19jYXN0PGxsPigocG93KDMsIG4pLTEpLzIpKSB7CgkJY291dCA8PCAtMSA8PCBlbmRsOwoJCXJldHVybiAwOwoJfQoJLy9pbml0aWFsaXplIHZhbHVlIG9mIEEgd2l0aCBkaWdpdHMgb2YgeCBpbiBiYXNlLTMgcmVwcmVzZW50YXRpb24KCWluaXQoeCwgQSk7Cglmb3IoaW50IGkgPSAwOyBpIDwgMjE7IGkrKyl7CgkJaWYgKEFbaV0gPT0gMCl7CgkJCS8vbm90aGluZwoJCQljb250aW51ZTsKCQl9CgkJaWYgKEFbaV0gPT0gMSl7CgkJCUFbaV0gPSAwOwoJCQlCW2ldID0gMTsKCQkJY29udGludWU7CgkJfQoJCWlmIChBW2ldID09IDIpewoJCQlBW2ldID0gMTsKCQkJQVtpKzFdKys7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAoQVtpXSA9PSAzKXsKCQkJQVtpKzFdKys7CgkJCWNvbnRpbnVlOwoJCX0KCX0KCWludCBpOwoJaSA9IDE7Cglmb3IoYXV0byBpdDogQSl7CgkJaWYgKGl0ID09IDEpIGNvdXQgPDwgaSA8PCAiICI7CgkJaSsrOwoJfQoJY291dCA8PCBlbmRsOwoJaSA9IDE7Cglmb3IoYXV0byBpdDogQil7CgkJaWYgKGl0ID09IDEpIGNvdXQgPDwgaSA8PCAiICI7CgkJaSsrOwoJfQoJY291dCA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0K