#include <stdio.h>
#include <stdint.h>
// Complete the function
uint16_t highest_set_bit(uint16_t reg) {
// Your logic here
if (reg == 0)
{
return 0;
}
uint16_t var = 0x8000;
int x = 1;
//loop until result is not 0 but first bit that is 1.
while ((reg & var)==0)
{
var = (0x8000 >> x);
x++;
}
return var;
}
int main() {
uint16_t reg;
scanf("%hu", ®);
uint16_t result = highest_set_bit(reg);
printf("%hu", result);
return 0;
}