package timus;
import java.util.Scanner;
/**
* Created by sherxon on 2016-12-11.
*/
public class BinaryLexicographicSequence1081 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int k=in.nextInt();
if(Math.pow(2, n) < k){
System.out.println(-1);
}else{
long[] f= new long[n*2+1];
int cost= findFibNumber(f, k);
findKthNumber(f, k-1, cost, n);
}
}
private static void findKthNumber(long[] f, int k, int cost, int n) {
long sumFibs=0;
long res=0;
while (sumFibs<k){
if(sumFibs+f[cost] <= k) {
sumFibs+=f[cost];
res+=Math.pow(2, cost-1);
}
cost--;
}
StringBuilder s=new StringBuilder(Long.toBinaryString(res));
if(s.length() > n)
System.out.println(-1);
else {
int l=s.length();
for (int i = l; i <n; i++) {
s.insert(0, "0");
}
System.out.println(s);
}
}
private static int findFibNumber(long[] f, int k) {
f[0]=1;
f[1]=1;
f[2]=2;
int cost=2;
for (int i = 3; i<k ; i++) {
if(f[i-1]+f[i-2]>k)break;
f[i]=f[i-1]+f[i-2];
cost++;
}
return cost;
}
private static String calcBinary(long i, int n) {
StringBuilder builder= new StringBuilder();
builder.append(Long.toBinaryString(i));
if(builder.indexOf("11")>=0) return null;
while (builder.length()<n)builder.insert(0, "0");
return builder.toString();
}
}