#include <iostream>
#include <bitset>

void split_bitset( std::bitset<56> &p, std::bitset<28> &left, std::bitset<28> &right ) {
	uint64_t uikey = p.to_ullong();
	
	left = uikey >> 28;
	right = uikey & 0xFFFFFFF;
}

int main() {

	std::bitset<56> permutationKey(0x133457799BBCDF);
	std::bitset<28> leftKey;
	std::bitset<28> rightKey;

	split_bitset(permutationKey,leftKey,rightKey);
	std::cout << permutationKey << '\n' << leftKey << '\n' << rightKey << '\n';
	return 0;
}