#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
int n;
ull k;
int main() {
cin >> n >> k;
k++;
ull r = 1 << n, l = 1, mid;
bool record = 1; //判断上一次是左半段还是右半段
for (int i = n ; i >= 1; i--) {
mid = (l + r) / 2;
if (record) { //若上一次是左半段则左半输出0,右半输出1
if (k <= mid) {
cout << 0;
record = 1;
r = mid;
} else {
cout << 1;
record = 0;
l = mid + 1;
}
} else { //若上一次是右半段则左半输出1,右半输出0
if (k <= mid) {
cout << 1;
record = 1;
r = mid;
} else {
cout << 0;
record = 0;
l = mid + 1;
}
}
}
return 0;
}