#include <iostream>
using namespace std;
int main()
{
int size;
cin >> size;
unsigned int* a = new unsigned int[size / 16]; // <- input tab to encrypt
unsigned int* b = new unsigned int[size / 16]; // <- output tab
for (int i = 0; i < size / 16; i++)
{ // Read size / 16 integers to a
cin >> hex >> a[i];
}
for(int i = 0; i < 32; i++ )
{
cout << a[i] << " " << endl;
}
for (int i = 0; i < size / 16; i++)
{ // Write size / 16 zeros to b
b[i] = 0;
}
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
b[(i + j) / 32] ^= ( (a[i / 32] >> (i % 32)) &
(a[j / 32 + size / 32] >> (j % 32)) & 1 ) << ((i + j) % 32); // Magic centaurian operation
for(int i = 0; i < size / 16; i++)
cout << hex << b[i] << " "; // print result
/*
Good luck humans
*/
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKICBpbnQgc2l6ZTsKICBjaW4gPj4gc2l6ZTsKIAogIHVuc2lnbmVkIGludCogYSA9IG5ldyB1bnNpZ25lZCBpbnRbc2l6ZSAvIDE2XTsgLy8gPC0gaW5wdXQgdGFiIHRvIGVuY3J5cHQKICB1bnNpZ25lZCBpbnQqIGIgPSBuZXcgdW5zaWduZWQgaW50W3NpemUgLyAxNl07IC8vIDwtIG91dHB1dCB0YWIKIAogIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZSAvIDE2OyBpKyspCiAgeyAgIC8vIFJlYWQgc2l6ZSAvIDE2IGludGVnZXJzIHRvIGEKICAgIGNpbiA+PiBoZXggPj4gYVtpXTsKICB9CiAgCiAgZm9yKGludCBpID0gMDsgaSA8IDMyOyBpKysgKQogIHsKICAJY291dCA8PCBhW2ldIDw8ICIgIiA8PCBlbmRsOwogIH0KCiAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplIC8gMTY7IGkrKykKICB7ICAgLy8gV3JpdGUgc2l6ZSAvIDE2IHplcm9zIHRvIGIKICAgIGJbaV0gPSAwOwogIH0JCiAKICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykKICAgIGZvciAoaW50IGogPSAwOyBqIDwgc2l6ZTsgaisrKQogICAgICBiWyhpICsgaikgLyAzMl0gXj0gKCAoYVtpIC8gMzJdID4+IChpICUgMzIpKSAmCgkJICAgICAgIChhW2ogLyAzMiArIHNpemUgLyAzMl0gPj4gKGogJSAzMikpICYgMSApIDw8ICgoaSArIGopICUgMzIpOyAgIC8vIE1hZ2ljIGNlbnRhdXJpYW4gb3BlcmF0aW9uCiAKICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZSAvIDE2OyBpKyspCiAgICBjb3V0IDw8IGhleCA8PCBiW2ldIDw8ICIgIjsgICAgICAgLy8gcHJpbnQgcmVzdWx0CgogLyogCiAgICBHb29kIGx1Y2sgaHVtYW5zICAgICAKICovCiAgcmV0dXJuIDA7Cn0=