6500: 金币(coin)

Memory Limit:512 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:875 Solved:79

Description

n个人在争夺一枚金币。

所有人排成一队,然后位于第1,1+k,1+2k,...,1+(⌈n/k⌉−1)k个的人被淘汰,这里⌈n/k⌉为n除以k上取整,上取整操作会将一个小数变成大于或等于它的最小整数,如⌈33/5⌉=⌈6.6⌉=7。 重复这一操作,直到仅剩一个人。最终剩下的这个人获得这枚金币。

Y是所有人中最聪明的。他想知道,要想最终获得金币,一开始他应该站在第几个位置?

Input

一行包含两个正整数n和k,表示总人数以及淘汰时用到的参数。

Output

输出一行一个整数,表示小Y应该处于的初始队列中的位置。

Sample Input Copy

样例输入1
6 2
样例输入2
8 3
样例输入3
10000 2
样例输入4
1919810 114514

Sample Output Copy

样例输出1
4
样例输出2
8
样例输出3
8192
样例输出4
1919805

HINT

样例解释

对于样例1n=6,起初,队列=[1,2,3,4,5,6],因为k=2,所以位于第1,3,5的人被淘汰,队列=[2,4,6],然后位于第1,3的人被淘汰,队列=[4],只剩下一个人,所以小Y一开始应该站在4号位置。

对于样例2n=8,起初,队列=[1,2,3,4,5,6,7,8],因为k=3,所以位于1,4,7的人被淘汰,队列=[2,3,5,6,8],然后位于1,4的人被淘汰,队列=[2,5,8],然后位于1的人被淘汰,队列=[5,8],然后位于1的人被淘汰,队列=[8],只剩下一个人,所以小Y一开始应该站在8号位置。

数据范围

本题共有12个测试点,每个测试点10分。

对于全部测试点:2<=n,k<=1012

对于测试点1 :n=k=2。

对于测试点2-4 :n,k<=1000。

对于测试的5-8 :k<=1000000