#include <stdio.h>
#include <stdint.h>
// Complete the function
uint16_t highest_set_bit(uint16_t reg) {
// keep checking for set bits
// if bit set, save bit pos
uint16_t highestBitPos = 0;
for (int i = 0; i < 16; i++){
if (reg & (1U<<i)){
highestBitPos = i;
}
}
// then AND with mask (1U<<bitPos)
return reg & (1U<<highestBitPos);
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = highest_set_bit(reg);
printf("%hu", result);
return 0;
}