#include <iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned char uchar;
//typedef unsigned long long ulong;
int check(uchar * pwd)
{
uchar a[] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
int d = strlen((char*)a), i, j;
for (i = 0, j = strlen((char*)pwd); i < j; i++) {
if (strchr((char*)a, (char)pwd[i]) == NULL) pwd[i] = a[pwd[i] % d];
if (i > 0) pwd[i - 1] = a[(((pwd[i - 1] ^ pwd[i]) << 1) * pwd[i]) % d];
}
return !strcmp((char*)pwd, "Tp9?k=HDN&nD{9 ~JzUYG3h>lF {`> K<% pm~J>y E=2B=y+<x+nf@*%kDZ;z/'WYbWOk'usw>Z");
}
int main(int argc, char ** argv)
{
printf("Result: %s\n", check((uchar*)"AeMzQ8oZk31W4B(L\\1Uh$,9m</cZeQё=\"LBygghYTC7QQMwY8otyMNobKExaZ181d<@U'S{@7cNqJZ") ? "OK" : "FAIL");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+Cgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWNoYXI7Ci8vdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxvbmc7CgppbnQgY2hlY2sodWNoYXIgKiBwd2QpCnsKICAgIHVjaGFyIGFbXSA9ICIgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+IjsKICAgIGludCBkID0gc3RybGVuKChjaGFyKilhKSwgaSwgajsKICAgIGZvciAoaSA9IDAsIGogPSBzdHJsZW4oKGNoYXIqKXB3ZCk7IGkgPCBqOyBpKyspIHsKICAgICAgICBpZiAoc3RyY2hyKChjaGFyKilhLCAoY2hhcilwd2RbaV0pID09IE5VTEwpIHB3ZFtpXSA9IGFbcHdkW2ldICUgZF07CiAgICAgICAgaWYgKGkgPiAwKSBwd2RbaSAtIDFdID0gYVsoKChwd2RbaSAtIDFdIF4gcHdkW2ldKSA8PCAxKSAqIHB3ZFtpXSkgJSBkXTsKICAgIH0KICAgIHJldHVybiAhc3RyY21wKChjaGFyKilwd2QsICJUcDk/az1IRE4mbkR7OSB+SnpVWUczaD5sRiB7YD4gSzwlIHBtfko+eSBFPTJCPXkrPHgrbmZAKiVrRFo7ei8nV1liV09rJ3Vzdz5aIik7Cn0KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiogYXJndikKewogICAgcHJpbnRmKCJSZXN1bHQ6ICVzXG4iLCBjaGVjaygodWNoYXIqKSJBZU16UThvWmszMVc0QihMXFwxVWgkLDltPC9jWmVR0ZE9XCJMQnlnZ2hZVEM3UVFNd1k4b3R5TU5vYktFeGFaMTgxZDxAVSdTe0A3Y05xSloiKSA/ICJPSyIgOiAiRkFJTCIpOwogICAgcmV0dXJuIDA7Cn0=