#include <cstdint>
#include <iomanip>
#include <iostream>
uint64_t calc(uint64_t n)
{
// (odd | even)
uint64_t x = (n & 0x5555555555555555ull) | ((n & 0xAAAAAAAAAAAAAAAAull) >> 1);
// deinterleave
x = (x | (x >> 1)) & 0x3333333333333333ull;
x = (x | (x >> 2)) & 0x0F0F0F0F0F0F0F0Full;
x = (x | (x >> 4)) & 0x00FF00FF00FF00FFull;
x = (x | (x >> 8)) & 0x0000FFFF0000FFFFull;
x = (x | (x >> 16)) & 0x00000000FFFFFFFFull;
return x;
}
int main()
{
uint64_t n;
while (std::cin >> n) {
std::cout << std::hex << n << " -> " << calc(n) << '\n';
}
}
I2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp1aW50NjRfdCBjYWxjKHVpbnQ2NF90IG4pCnsKCS8vIChvZGQgfCBldmVuKQoJdWludDY0X3QgeCA9IChuICYgMHg1NTU1NTU1NTU1NTU1NTU1dWxsKSB8ICgobiAmIDB4QUFBQUFBQUFBQUFBQUFBQXVsbCkgPj4gMSk7CgoJLy8gZGVpbnRlcmxlYXZlCgl4ID0gKHggfCAoeCA+PiAxKSkgJiAweDMzMzMzMzMzMzMzMzMzMzN1bGw7Cgl4ID0gKHggfCAoeCA+PiAyKSkgJiAweDBGMEYwRjBGMEYwRjBGMEZ1bGw7Cgl4ID0gKHggfCAoeCA+PiA0KSkgJiAweDAwRkYwMEZGMDBGRjAwRkZ1bGw7Cgl4ID0gKHggfCAoeCA+PiA4KSkgJiAweDAwMDBGRkZGMDAwMEZGRkZ1bGw7Cgl4ID0gKHggfCAoeCA+PiAxNikpICYgMHgwMDAwMDAwMEZGRkZGRkZGdWxsOwoKCXJldHVybiB4Owp9CgppbnQgbWFpbigpCnsKCXVpbnQ2NF90IG47Cgl3aGlsZSAoc3RkOjpjaW4gPj4gbikgewoJCXN0ZDo6Y291dCA8PCBzdGQ6OmhleCA8PCBuIDw8ICIgLT4gIiA8PCBjYWxjKG4pIDw8ICdcbic7Cgl9Cn0K