#include <cassert>
#include <iostream>
int main() {
typedef long long BigInteger;
BigInteger max/*("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");*/ = 0x0FFFFFFFFFFFFFFF;
for(BigInteger x0=1; x0<max;x0 *= 2) {
for(BigInteger x1=x0-1; x1<x0-2; ++x1) {
for(BigInteger y0=1; y0<=x1; y0*= 2) {
for(BigInteger y1=y0-1; y1<=y0+1; ++y1) {
BigInteger p(x1*y1);
if (x1) assert(p/x1==y1);
if (y1) assert(p/y1==x1);
}
}
}
}
std::cout << "PASSED DIVISION TESTS";
}
I2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KaW50IG1haW4oKSB7CiAgICB0eXBlZGVmIGxvbmcgbG9uZyBCaWdJbnRlZ2VyOwogICAgQmlnSW50ZWdlciBtYXgvKigiRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiIpOyovID0gMHgwRkZGRkZGRkZGRkZGRkZGOwoKZm9yKEJpZ0ludGVnZXIgeDA9MTsgeDA8bWF4O3gwICo9IDIpIHsKICAgIGZvcihCaWdJbnRlZ2VyIHgxPXgwLTE7IHgxPHgwLTI7ICsreDEpIHsKICAgICAgICBmb3IoQmlnSW50ZWdlciB5MD0xOyB5MDw9eDE7IHkwKj0gMikgewogICAgICAgICAgICBmb3IoQmlnSW50ZWdlciB5MT15MC0xOyB5MTw9eTArMTsgKyt5MSkgewogICAgICAgICAgICAgICAgQmlnSW50ZWdlciBwKHgxKnkxKTsKICAgICAgICAgICAgICAgIGlmICh4MSkgYXNzZXJ0KHAveDE9PXkxKTsKICAgICAgICAgICAgICAgIGlmICh5MSkgYXNzZXJ0KHAveTE9PXgxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQpzdGQ6OmNvdXQgPDwgIlBBU1NFRCBESVZJU0lPTiBURVNUUyI7Cgp9