#include <iostream>
#include <iomanip>
#include <bitset>
#include <type_traits>
using namespace std;
template<typename Int>
int pairs(Int n)
{
static_assert(is_integral<Int>::value && is_unsigned<Int>::value);
constexpr int bits = sizeof(Int)*8;
bitset<bits> b(n);
int p = 0;
for(int i = 1; i < bits; ++i)
p += (b[i] == b[i-1]);
return p;
}
int main(int argc, char * argv[])
{
cout << pairs((unsigned int )12) << endl;
cout << pairs((unsigned char)12) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIEludD4KaW50IHBhaXJzKEludCBuKQp7CiAgICBzdGF0aWNfYXNzZXJ0KGlzX2ludGVncmFsPEludD46OnZhbHVlICYmIGlzX3Vuc2lnbmVkPEludD46OnZhbHVlKTsKICAgIGNvbnN0ZXhwciBpbnQgYml0cyA9IHNpemVvZihJbnQpKjg7CiAgICBiaXRzZXQ8Yml0cz4gYihuKTsKICAgIGludCBwID0gMDsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBiaXRzOyArK2kpCiAgICAgICAgcCArPSAoYltpXSA9PSBiW2ktMV0pOwogICAgcmV0dXJuIHA7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CiAgICBjb3V0IDw8IHBhaXJzKCh1bnNpZ25lZCBpbnQgKTEyKSA8PCBlbmRsOwogICAgY291dCA8PCBwYWlycygodW5zaWduZWQgY2hhcikxMikgPDwgZW5kbDsKfQo=