#include <stdio.h>
#include <stdint.h>
// Trả về giá trị chỉ giữ lại bit cao nhất được set
uint16_t highest_set_bit(uint16_t reg) {
if (reg == 0) return 0; // nếu không có bit nào set thì trả về 0
int pos = -1;
for (int i = 0; i < 16; i++) {
if (reg & (1 << i)) {
pos = i; // lưu lại vị trí bit đang set
}
}
return (1 << pos); // chỉ giữ lại duy nhất bit cao nhất
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = highest_set_bit(reg);
printf("%hu", result);
return 0;
}