#include <iostream>
using namespace std;
int bits_needed(uint32_t value)
{
int bits = 0;
if (value >= 0x10000)
{
bits += 16;
value >>= 16;
}
if (value >= 0x100)
{
bits += 8;
value >>= 8;
}
if (value >= 0x10)
{
bits += 4;
value >>= 4;
}
if (value >= 0x4)
{
bits += 2;
value >>= 2;
}
return bits + value;
}
int main() {
cout << bits_needed(30665) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKICAgIGludCBiaXRzX25lZWRlZCh1aW50MzJfdCB2YWx1ZSkKICAgIHsKICAgICAgICBpbnQgYml0cyA9IDA7CiAgICAgICAgaWYgKHZhbHVlID49IDB4MTAwMDApCiAgICAgICAgewogICAgICAgICAgICBiaXRzICs9IDE2OwogICAgICAgICAgICB2YWx1ZSA+Pj0gMTY7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA+PSAweDEwMCkKICAgICAgICB7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgdmFsdWUgPj49IDg7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA+PSAweDEwKQogICAgICAgIHsKICAgICAgICAgICAgYml0cyArPSA0OwogICAgICAgICAgICB2YWx1ZSA+Pj0gNDsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID49IDB4NCkKICAgICAgICB7CiAgICAgICAgICAgIGJpdHMgKz0gMjsKICAgICAgICAgICAgdmFsdWUgPj49IDI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiaXRzICsgdmFsdWU7CiAgICB9CgppbnQgbWFpbigpIHsKCWNvdXQgPDwgYml0c19uZWVkZWQoMzA2NjUpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==