#include <stdio.h>
#include <stdint.h>
uint16_t keep_highest_set_bit(uint16_t n) {
if (n == 0) {
return 0;
}
n |= n >> 1;
n |= n >> 2;
n |= n >> 4;
n |= n >> 8;
return n - (n >> 1);
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = keep_highest_set_bit(reg);
printf("%hu", result);
return 0;
}