题目描述
小W定义了一个奇偶的变换规则,当一个数x是偶数的时候,就变成x/2,当x是奇数的时候,就变成x − 1,直到x变成1。
利用这个规则,我们可以写下path(x)表示从x开始按照上述规则不断变换的一个序列。例如,path(1) = [1], path(15) = [15, 14, 7, 6,3, 2, 1], path(32) = [32,16, 8, 4, 2, 1]。
现在我们要求的是一个最大的y,使得y至少在k个path(x)里面出现,其中1 ≤ x ≤ n。
例如,当n = 11, k = 3时候,答案是5,因为5在path(5),path(10), path(11)里面都出现了,具体我们看这几个:path(5) = [5, 4, 2, 1], path(10) = [10, 5,4,2, 1], path(11) = [11, 10,5,4,2,1],已经没有更大的数出现的次数至少是3次。
又比如,当n = 11, k = 6时候,答案是4,因为4在path(4), path(5), path(8), path(9), path(10),path(11)里面出现了,已经没有更大的数出现的次数至少是6次
输入格式
输入一行仅有两个正整数n和k
输出格式
输出最大的能够满足条件的整数y
样例数据1
input
11 3
output
5
样例数据2
input
11 6
output
4
样例数据3
input
20 20
output
1
只有1才能满足至少出现20次。
样例数据4
input
14 5
output
6
样例数据5
input
1000000 100
output
31248
数据范围
对于40%的数据,1 ≤ k ≤ n ≤ 10^3。
对于80%的数据,1 ≤ k ≤ n ≤ 10^5。
对于100%的数据,1 ≤ k ≤ n ≤ 10^9。