锁
题目描述
给出 $N$ 和 $K$,要求生成从 $0$ 到 $2^N-1$ 的一个序列,序列的第一项为 $0$,并且该序列满足以下三个条件:
1. 序列长度为 $2^N$,保证 $0$ 到 $2^N-1$ 的每个数都用了且只用了一次。
2. 序列中任意两相邻的数都是由前一个数在其二进制下,改变了具有相同值的若干个位而形成的,即把其中若干个 $0$ 变为 $1$,或把其中若干个 $1$ 变为 $0$,并且只能二选一。
3. 当存在多个序列满足前两个条件的时候,要保证字典序最小,即由前一个数生成后一个数的时候,要挑值最小的数(当然是满足前两个条件的情况下)。
现问你这个序列前 $K$ 项中的最大值是多少,输出其二进制形式,注意一定要输出 $N$ 位,包括前导零。
输入输出格式
输入格式
仅一行两个整数 $N,K$。
输出格式
一个二进制表示的数,为所求的答案。
输入输出样例
输入样例 #1
3 8
输出样例 #1
111
说明
### 样例解释
生成的序列为 $[000,001,011,010,110,100,101,111]$。前 $8$ 项当中的最大值为 $111$。
### 数据范围及约定
对于全部数据,$1 \le N \le 50,1 \le K \le 2^N$。