当前没有测试数据。
集合序列
题目描述
定义集合S1为1到n之间所有正整数组成的集合,即S1={1,2,3,…,n}。当k>1时,Sk为集合Sk−1中任意两个不相同数之和构成的集合。
例如,当n=3时:
- S1={1,2,3}
- S2={3,4,5}
- S3={7,8,9}
- S4={15,16,17}
- …
现将每个集合中所有元素取出,集合Si的数放在集合Si+1的数的前面,同一个集合的数从小到大排序,这样得到一个序列L。例如,当n=3时,L=1,2,3,3,4,5,7,8,9,15,16,17,…。
那么,现对于给定的n和k,求L中第k个数。
输入格式
输入包含1行,为2个正整数n和k,两个整数用空格隔开。
输出格式
输出包含1行,为一个正整数,即序列L中第k个数。若这个数不存在,则输出−1。
数据范围与提示
- 对于20%的数据,有k≤20;
- 对于40%的数据,有k≤10000,n≤5;
- 对于50%的数据,满足答案不超过231−1;
- 对于60%的数据,有k≤230−1;
- 对于80%的数据,有k≤10100;
- 对于100%的数据,有k≤101000,1≤n≤1000,对于n≤3有k≤90000。
样例
4 6
4