Since Grisha behaved well last year, at New Year's Eve he was visited by Ded Moroz who brought an enormous bag of gifts with him! The bag contains n sweet candies from the good ol' bakery, each labeled from 1 to n corresponding to its tastiness. No two candies have the same tastiness.

The choice of candies has a direct effect on Grisha's happiness. One can assume that he should take the tastiest ones — but no, the holiday magic turns things upside down. It is the xor-sum of tastinesses that matters, not the ordinary sum!

A xor-sum of a sequence of integers a1, a2, ..., am is defined as the bitwise XOR of all its elements: <image>, here <image> denotes the bitwise XOR operation; more about bitwise XOR can be found [here.](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)

Ded Moroz warned Grisha he has more houses to visit, so Grisha can take no more than k candies from the bag. Help Grisha determine the largest xor-sum (largest xor-sum means maximum happiness!) he can obtain.

Input

The sole string contains two integers n and k (1 ≤ k ≤ n ≤ 1018).

Output

Output one number — the largest possible xor-sum.

Examples

Input

4 3


Output

7


Input

6 6


Output

7

Note

In the first sample case, one optimal answer is 1, 2 and 4, giving the xor-sum of 7.

In the second sample case, one can, for example, take all six candies and obtain the xor-sum of 7.
import math
import sys
import bisect  # https://pythonworld.ru/moduli/modul-bisect.html
from heapq import heapify, heappop, heappush
from itertools import *  # https://pythonworld.ru/moduli/modul-itertools.html
from collections import deque, OrderedDict
from pprint import pprint
sys.setrecursionlimit(10 ** 6)
# f = open('input.txt')
# f.close()
II = lambda: sys.stdin.readline()  # f.readline()
inp = lambda: int(II())
inpm = lambda: map(int, II().split())
inpl = lambda: list(inpm())
DEBUG = False
def set_debug(deb:bool=True):
    global DEBUG
    DEBUG = deb
def debug(**kwargs):
    if DEBUG:
        arr = []
        for k, w in kwargs.items():
            arr.append(f'{k}: {w}')
        print(*arr, sep=', ')

WHITE, GREY, BLACK, RED = 0, 1, 2, 3
EPS = 1e-9
INF = int(1e18)
MOD = int(1e9) + 7  # 998244353
N = 2000009

# set_debug()
def solve():
    n, k = inpm()
    if k == 1:
        print(n)
    else:
        i = 0
        while (n >> 1) > 0:
            n >>= 1
            i += 1
        print((1 << (i + 1)) - 1)


# set_debug(deb=True)
'''

'''

def main():
    t = 1  # inp()  # 1  #
    for i in range(t):
        solve()
        # print()
main()