import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
// solution1(in);
// solution2(in);
// solution3(in);
solution4(in);
}
}
/**
* 数学公式法
* @param in
*/
private static void solution1(Scanner in){
int n = in.nextInt();
int pow = (int)Math.floor(Math.log(n)/Math.log(2));
int pos = 1<<pow;
int num = pos-1;
System.out.println(num);
}
/**
* 二进制移位法
* @param in
*/
private static void solution2(Scanner in){
int n = in.nextInt();
int index = 1;
while(index <= n){
index <<= 1;
}
int pos = index>>1;
int num = pos-1;
System.out.println(num);
}
/**
* 数学法
*
* pos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
* num 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
* num 1 3 5 7 9 11 13 15
* num 3 7 11 15
* num 7 15
* num 15
*
* 观上可知:
* 每轮最开始的数num依次为 0 1 3 7 15, 对应的pos依次为 1 2 4 8 16, 即 2^0 2^1 2^2 2^3 2^4
*
* @param in
*/
private static void solution3(Scanner in){
int n = in.nextInt();
int index = 1;
while(index <= n){
index *= 2;
}
int pos = index/2;
int num = pos-1;
System.out.println(num);
}
/**
* 数组: 删除奇数位等价于保留偶数位
* @param in
*/
private static void solution4(Scanner in){
int n = in.nextInt();
int[] nums = new int[n+1];
for(int i=0; i<=n; i++){
nums[i] = i;
}
int len = nums.length;
while(len != 1){
int k = 0;
for(int i=1; i<len; i+=2){
nums[k++] = nums[i];
}
len = k;
}
System.out.println(nums[0]);
}
}