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 \leq l \leq |s| - |t| + 1$ that $t = s_l s_{l+1} \ldots 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 \bmod 2) = (k \bmod 2)$, where $(x \bmod 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 \leq k \leq n \leq 100\,000$, $(k \bmod 2) = (n \bmod 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$.

Difficulty: HARD

Solutions:
(n, k) = map(int, input().strip().split())
d = (n - k) // 2 + 1
x = ['1' if (i + 1) % d == 0 else '0' for i in range(n)]
print(''.join(x))


(n, k) = list(map(int, input().split()))
x = (n - (k - 1) + 1) // 2
STR = '0' * (x - 1) + '1'
ANS = STR * (n // x + 1)
print(ANS[:n])


(n, k) = map(int, input().split())
if n == k:
	print('1' * n)
	return
a = n - k >> 1
i = 0
Ans = ''
while i < n:
	Ans += '0' * a
	i += a
	if i > n - 1:
		break
	Ans += '1'
	i += 1
	if i > n - 1:
		break
print(Ans[:n])


import math
import sys
(n, k) = list(map(int, input().split()))
a = [0] * n
side = (n - k) // 2
for i in range(side, n, side + 1):
	a[i] = 1
print(''.join(map(str, a)))


(n, k) = map(int, input().split())
if n == k:
	print('1' * n)
else:
	print((('0' * ((n - k + 2) // 2 - 1) + '1') * (n // ((n - k + 2) // 2) + 1))[:n])


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
import math
(n, k) = map(int, input().split())
a = (n - k) // 2
s = ''
while len(s) < n:
	s = s + '0' * a + '1'
print(s[:n])


t = 1

def solve():
	k1 = (n - k) // 2
	for i in range(n):
		print(int((i + 1) % (k1 + 1) == 0), end='')
	print()
for _ in range(t):
	(n, k) = map(int, input().split())
	solve()


import os
import sys

def log(*args, **kwargs):
	if os.environ.get('CODEFR'):
		print(*args, **kwargs)
(n, k) = tuple(map(int, input().split()))
s = '0' * ((n - k) // 2) + '1'
for i in range(n):
	print(s[i % len(s)], end='')
print()


(n, k) = map(int, input().split())
length = (n - k + 2) // 2
string = '0' * (length - 1) + '1'
answer = string * (n // length + 1)
print(answer[:n])


(n, k) = map(int, input().split())
print((((n - k) // 2 * '0' + '1') * (n // ((n - k) // 2 + 1) + 1))[:n])


from collections import *
from math import *
(n, k) = map(int, input().split())
x = (n - k) // 2 + 1
for i in range(1, n + 1):
	if i % x == 0:
		print(1, end='')
	else:
		print(0, end='')
print()


(n, m) = map(int, input().split())
a = (n - m) // 2
a1 = ''
for i in range(a):
	a1 += '0'
ans = ''
last = a1
while len(ans) <= n:
	if last == a1:
		ans += a1
		last = '1'
	else:
		ans += last
		last = a1
for i in range(n):
	print(ans[i], end='')


(n, k) = map(int, input().split())
strr = ''
while len(strr) < n:
	strr += '0' * ((n - k) // 2) + '1'
strr = strr[:n]
print(strr)