#include <vector>
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int lcg(int seed = -1)
{
static int result = 0;
if (seed >= 0) result = seed;
int m = 0xfffffff;
int c = 1;
int a = 22695477;
result = (a * result + c) % m;
if (result < 0) result = -result;
return result;
}
int main(int argc, char * argv[])
{
for(int i = 0; i < 20; i+=2)
{
lcg(time(0)+i);
int M = 0, C = 0;
vector<bool> v(0xfffffff);
for(;;)
{
int x = lcg();
if (v[x]) break;
++C;
if (M < x) M = x;
v[x] = true;
}
cout << C << " " << M << endl;
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGN0aW1lPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBsY2coaW50IHNlZWQgPSAtMSkKewogICAgc3RhdGljIGludCByZXN1bHQgPSAwOwogICAgaWYgKHNlZWQgPj0gMCkgcmVzdWx0ID0gc2VlZDsKICAgIGludCBtID0gMHhmZmZmZmZmOwogICAgaW50IGMgPSAxOwogICAgaW50IGEgPSAyMjY5NTQ3NzsKICAgIHJlc3VsdCA9IChhICogcmVzdWx0ICsgYykgJSBtOwogICAgaWYgKHJlc3VsdCA8IDApIHJlc3VsdCA9IC1yZXN1bHQ7CiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3ZbXSkKewogICAgZm9yKGludCBpID0gMDsgaSA8IDIwOyBpKz0yKQogICAgewogICAgCWxjZyh0aW1lKDApK2kpOwogICAKCSAgICBpbnQgTSA9IDAsIEMgPSAwOwoJICAgIHZlY3Rvcjxib29sPiB2KDB4ZmZmZmZmZik7CgkgICAgZm9yKDs7KQoJICAgIHsKCSAgICAgICAgaW50IHggPSBsY2coKTsKCSAgICAgICAgaWYgKHZbeF0pIGJyZWFrOwoJICAgICAgICArK0M7CgkgICAgICAgIGlmIChNIDwgeCkgTSA9IHg7CgkgICAgICAgIHZbeF0gPSB0cnVlOwoJICAgIH0KCSAgICBjb3V0IDw8IEMgPDwgIiAgIiA8PCBNIDw8IGVuZGw7Cgl9Cn0K