#include <bits/stdc++.h>
using namespace std;
int n, f1;
long long k;
bool flag;
void Print(int x) {
  for (int i = n / 2 - 1; ~i; --i) printf("%d", (x >> i) & 1);
}
inline int Rev(int x) {
  int ret = 0;
  for (int i = 0; i < n / 2; ++i) ret |= ((x >> i) & 1) << (n / 2 - 1 - i);
  return ret;
}
int main() {
  cin >> n >> k;
  f1 = (1 << (n / 2)) - 1;
  for (int i = 0; i < 1 << (n / 2 - 1); ++i) {
    int siz = ((1 << (n / 2 - 1)) - i) << (1 + (n & 1));
    siz -= !i + (n & 1);
    if (k > siz)
      k -= siz;
    else {
      flag = true;
      for (int j = 1; j < 1 << (n / 2); ++j) {
        if (Rev(j) >= i && Rev((j ^ f1)) >= i) --k;
        if (!k) {
          Print(i);
          if (n & 1) printf("0");
          Print(j);
          printf("\n");
          break;
        }
      }
      if ((n & 1) && k) {
        for (int j = 0; j < 1 << (n / 2); ++j) {
          if (Rev(j) >= i && Rev((j ^ f1)) > i) --k;
          if (!k) {
            Print(i);
            printf("1");
            Print(j);
            printf("\n");
            break;
          }
        }
      }
    }
    if (flag) break;
  }
  if (!flag) printf("-1\n");
}
