Let s be some string consisting of symbols "0" or "1". Let's call a string t a substring of string s, if there exists such number 1 ≤ l ≤ |s| - |t| + 1 that t = s_l s_{l+1} … s_{l + |t| - 1}. Let's call a substring t of string s unique, if there exist only one such l. 

For example, let s = "1010111". A string t = "010" is an unique substring of s, because l = 2 is the only one suitable number. But, for example t = "10" isn't a unique substring of s, because l = 1 and l = 3 are suitable. And for example t ="00" at all isn't a substring of s, because there is no suitable l.

Today Vasya solved the following problem at the informatics lesson: given a string consisting of symbols "0" and "1", the task is to find the length of its minimal unique substring. He has written a solution to this problem and wants to test it. He is asking you to help him.

You are given 2 positive integers n and k, such that (n mod 2) = (k mod 2), where (x mod 2) is operation of taking remainder of x by dividing on 2. Find any string s consisting of n symbols "0" or "1", such that the length of its minimal unique substring is equal to k.

Input

The first line contains two integers n and k, separated by spaces (1 ≤ k ≤ n ≤ 100 000, (k mod 2) = (n mod 2)).

Output

Print a string s of length n, consisting of symbols "0" and "1". Minimal length of the unique substring of s should be equal to k. You can find any suitable string. It is guaranteed, that there exists at least one such string.

Examples

Input


4 4


Output


1111

Input


5 3


Output


01010

Input


7 3


Output


1011011

Note

In the first test, it's easy to see, that the only unique substring of string s = "1111" is all string s, which has length 4.

In the second test a string s = "01010" has minimal unique substring t ="101", which has length 3.

In the third test a string s = "1011011" has minimal unique substring t ="110", which has length 3.
import static java.lang.Math.*;
import static java.util.Arrays.*;

import java.util.*;
import java.io.*;

public class A
{
    ArrayList<String> arr = new ArrayList<>() ;
    int n , k ;
    void brute(String s , int idx)
    {
        if(idx == n)
        {
            int min = 1 << 30 ;
            for(int i = 0 ; i < n ;i++)
                for(int j = i + 1; j <= n ; j++)
                {
                    String sub = s.substring(i , j) ;

                    int len = sub.length();
                    int cnt = 0 ;
                    for(int l = 0 ; l + len <= n ; l++)
                        if(s.substring(l , l + len).equals(sub))
                            cnt ++ ;
                    if(cnt == 1)
                        min = min(min, len) ;
                }
            if(min == k)
                arr.add(s) ;
            return;
        }
        brute(s+ "0" , idx + 1);
        brute(s+ "1" , idx + 1);
    }
    void main() throws Exception
    {
        Scanner sc = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out) ;
        n = sc.nextInt() ;
        k = sc.nextInt() ;
//        brute("" , 0);
//        System.out.println(arr);
        if(k == 1 || k == 2)
        {
            for(int i = 0 ; i < n - k; i++)
                out.print(0) ;
            while(k -->0)
                out.print(1) ;
        }
        else
        {
            int zeros = 0 ;
            for(int i = n - 2 ; i >= k ; i -= 2)
                zeros ++ ;
            StringBuilder sb = new StringBuilder() ;
            while(zeros -->0)
                sb.append(0) ;
            sb.append(1) ;
            int sz = sb.length() ;
            char [] c = sb.toString().toCharArray() ;
            for(int i = 0 ;i < n ; i++)
                out.print(c[i % sz]) ;
        }
        out.flush();
        out.close();
    }

    class Scanner
    {
        BufferedReader br;
        StringTokenizer st;

        Scanner(InputStream in)
        {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        Scanner(String path) throws Exception{
            br = new BufferedReader((new FileReader(path))) ;
        }
        String next() throws Exception
        {
            while (st == null || !st.hasMoreTokens())
                st = new StringTokenizer(br.readLine());
            return st.nextToken();
        }

        int nextInt() throws Exception { return Integer.parseInt(next()); }

        long nextLong() throws Exception { return Long.parseLong(next()); }

        double nextDouble() throws Exception { return Double.parseDouble(next());}
    }

    public static void main (String [] args) throws Exception {(new A()).main();}

}