#include <iostream>
#include <iomanip>
#include <bitset>

using namespace std;

int main(int argc, char * argv[])
{
    unsigned int n = 1000'000'000;
    int count = 0;
    for(int m = 1; m < 32; ++m)
    {
        unsigned int x = 1 << m;
        if (x > n) break;
        for(int l = 0; l < m; ++l)
        {
            unsigned int y = x + (1 << l);
            if ( y > n) break;
            cout << bitset<32>(y) << " : " << setw(10) << y << endl;
            ++count;
        }
    }
    cout << "Total: " << count << endl;
}
