QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 128 MB Total points: 10

#10646. Dwójkowy zbijak [A]

统计

Bituś i Bajtuś grają w "dwójkowego zbijaka". Gra toczy się na planszy złożonej z $ n $ pól ponumerowanych liczbami od 1 do $ n $. Na każdym polu stoi jeden pionek. Gracze wykonują ruchy naprzemiennie. Ruch polega na zabraniu pionka z pola o numerze $ i $ i przesunięciu go na pole o numerze $2^{k}i$ , dla dowolnego $ k \ge 1$, o ile takie pole istnieje. Jeśli na nowym polu stał jakiś pionek, to następuje wzajemne "bicie" i oba pionki zostają wyeliminowane z gry. Przegrywa gracz, który nie może wykonać żadnego ruchu.

Za każdym razem Bituś przygotowuje planszę (tzn. wybiera liczbę dodatnią $ n $) oraz wspaniałomyślnie oddaje pierwszy ruch Bajtusiowi. Bituś jednak nie lubi przegrywać, więc postanowił wybierać zawsze taką planszę, na której drugi gracz ma strategię wygrywającą. Tak jest np. dla plansz o długościach 1, 10 lub 11. Nie chce jednak, by Bajtuś zaczął coś podejrzewać, więc za każdym razem musi wybrać planszę innego rozmiaru.

Poprosił Cię zatem o pomoc. Napisz program, który dla danej liczby $ k $ wypisze $ k $-ty co do wielkości rozmiar planszy, na której drugi gracz ma strategię wygrywającą.

Input Format

W jedynym wierszu wejścia znajduje się jedna liczba całkowita $ k $ ($1 \le k \le 1\,000\,000\,000$).

Output Format

W jedynym wierszu wyjścia należy wypisać jedną liczbę całkowitą równą rozmiarowi $ k $-tej co do wielkości planszy gwarantującej zwycięstwo drugiemu graczowi.

Example

Input

2

Output

10