#include <stdint.h>
#define N 1<<27
#define SWAP(x,y) if(temp[x]>temp[y]){t=temp[x];temp[x]=temp[y];temp[y] = t;}
uint64_t s[2] = {0xb78895b278bfd25bULL, 0x5b1384c2629587a9ULL};
inline uint64_t xrand(void) {
uint64_t s1 = s[0];
const uint64_t s0 = s[1];
s[0] = s0;
s1 ^= s1 << 23;
return (s[1] = (s1 ^ s0 ^ (s1 >> 17) ^ (s0 >> 26))) + s0;
}
int main(void){
uint32_t i;
uint64_t temp[9] = {0}, t, r;
for(i = 0; i < N; i ++){
temp[0] = xrand();
temp[1] = xrand();
temp[2] = xrand();
temp[3] = xrand();
temp[4] = xrand();
temp[5] = xrand();
temp[6] = xrand();
temp[7] = xrand();
temp[8] = xrand();
SWAP(0, 1);
SWAP(3, 4);
SWAP(6, 7);
SWAP(1, 2);
SWAP(4, 5);
SWAP(7, 8);
SWAP(0, 1);
SWAP(3, 4);
SWAP(6, 7);
SWAP(0, 3);
SWAP(3, 6);
SWAP(0, 3);
SWAP(1, 4);
SWAP(4, 7);
SWAP(1, 4);
SWAP(2, 5);
SWAP(5, 8);
SWAP(2, 5);
SWAP(1, 3);
SWAP(5, 7);
SWAP(2, 6);
SWAP(4, 6);
SWAP(2, 4);
SWAP(2, 3);
SWAP(5, 6);
r ^= temp[6];
}
return r;
}
I2luY2x1ZGUgPHN0ZGludC5oPgojZGVmaW5lIE4gMTw8MjcKCiNkZWZpbmUgU1dBUCh4LHkpIGlmKHRlbXBbeF0+dGVtcFt5XSl7dD10ZW1wW3hdO3RlbXBbeF09dGVtcFt5XTt0ZW1wW3ldID0gdDt9Cgp1aW50NjRfdCBzWzJdID0gezB4Yjc4ODk1YjI3OGJmZDI1YlVMTCwgMHg1YjEzODRjMjYyOTU4N2E5VUxMfTsKCmlubGluZSB1aW50NjRfdCB4cmFuZCh2b2lkKSB7CiAgICAgICAgdWludDY0X3QgczEgPSBzWzBdOwogICAgICAgIGNvbnN0IHVpbnQ2NF90IHMwID0gc1sxXTsKICAgICAgICBzWzBdID0gczA7CiAgICAgICAgczEgXj0gczEgPDwgMjM7CiAgICAgICAgcmV0dXJuIChzWzFdID0gKHMxIF4gczAgXiAoczEgPj4gMTcpIF4gKHMwID4+IDI2KSkpICsgczA7Cn0KCmludCBtYWluKHZvaWQpewogICAgICAgIHVpbnQzMl90IGk7CiAgICAgICAgdWludDY0X3QgdGVtcFs5XSA9IHswfSwgdCwgcjsKCiAgICAgICAgZm9yKGkgPSAwOyBpIDwgTjsgaSArKyl7CiAgICAgICAgICAgICAgICB0ZW1wWzBdID0geHJhbmQoKTsKICAgICAgICAgICAgICAgIHRlbXBbMV0gPSB4cmFuZCgpOwogICAgICAgICAgICAgICAgdGVtcFsyXSA9IHhyYW5kKCk7CiAgICAgICAgICAgICAgICB0ZW1wWzNdID0geHJhbmQoKTsKICAgICAgICAgICAgICAgIHRlbXBbNF0gPSB4cmFuZCgpOwogICAgICAgICAgICAgICAgdGVtcFs1XSA9IHhyYW5kKCk7CiAgICAgICAgICAgICAgICB0ZW1wWzZdID0geHJhbmQoKTsKICAgICAgICAgICAgICAgIHRlbXBbN10gPSB4cmFuZCgpOwogICAgICAgICAgICAgICAgdGVtcFs4XSA9IHhyYW5kKCk7CgogICAgICAgICAgICAgICAgU1dBUCgwLCAxKTsKICAgICAgICAgICAgICAgIFNXQVAoMywgNCk7CiAgICAgICAgICAgICAgICBTV0FQKDYsIDcpOwogICAgICAgICAgICAgICAgU1dBUCgxLCAyKTsKICAgICAgICAgICAgICAgIFNXQVAoNCwgNSk7CiAgICAgICAgICAgICAgICBTV0FQKDcsIDgpOwogICAgICAgICAgICAgICAgU1dBUCgwLCAxKTsKICAgICAgICAgICAgICAgIFNXQVAoMywgNCk7CiAgICAgICAgICAgICAgICBTV0FQKDYsIDcpOwogICAgICAgICAgICAgICAgU1dBUCgwLCAzKTsKICAgICAgICAgICAgICAgIFNXQVAoMywgNik7CiAgICAgICAgICAgICAgICBTV0FQKDAsIDMpOwogICAgICAgICAgICAgICAgU1dBUCgxLCA0KTsKICAgICAgICAgICAgICAgIFNXQVAoNCwgNyk7CiAgICAgICAgICAgICAgICBTV0FQKDEsIDQpOwogICAgICAgICAgICAgICAgU1dBUCgyLCA1KTsKICAgICAgICAgICAgICAgIFNXQVAoNSwgOCk7CiAgICAgICAgICAgICAgICBTV0FQKDIsIDUpOwogICAgICAgICAgICAgICAgU1dBUCgxLCAzKTsKICAgICAgICAgICAgICAgIFNXQVAoNSwgNyk7CiAgICAgICAgICAgICAgICBTV0FQKDIsIDYpOwogICAgICAgICAgICAgICAgU1dBUCg0LCA2KTsKICAgICAgICAgICAgICAgIFNXQVAoMiwgNCk7CiAgICAgICAgICAgICAgICBTV0FQKDIsIDMpOwogICAgICAgICAgICAgICAgU1dBUCg1LCA2KTsKCiAgICAgICAgICAgICAgICByIF49IHRlbXBbNl07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcjsKfQo=