#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> pow_mod_seq(int a, int m, int &o, int &p)
{
vector<int> s = {1};
for (;;) {
int t = s.back() * a % m;
auto i = find(s.begin(), s.end(), t);
if (i == s.end()) {
s.push_back(t);
} else {
o = (i - s.begin());
p = s.size() - o;
break;
}
}
return s;
}
int powmod(int a, int n, int m)
{
if (n == 0) {
return 1;
} else if (n & 1) {
return a * powmod(1LL * a * a % m, n / 2, m) % m;
} else {
return powmod(1LL * a * a % m, n / 2, m) % m;
}
}
int powpowmod100(int n)
{
if (n == 2) {
return 16;
}
int m = n % 100;
if (m <= 1) {
return m;
}
int offset, period;
auto s = pow_mod_seq(m, 100, offset, period);
int i = powmod(n, n, period) - offset;
while (i < 0) {
i += period;
}
return s[offset + i];
}
int main()
{
for (int n; cin >> n; ) {
cout << n << " => " << powpowmod100(n) << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxpbnQ+IHBvd19tb2Rfc2VxKGludCBhLCBpbnQgbSwgaW50ICZvLCBpbnQgJnApCnsKICAgIHZlY3RvcjxpbnQ+IHMgPSB7MX07CiAgICBmb3IgKDs7KSB7CiAgICAgICAgaW50IHQgPSBzLmJhY2soKSAqIGEgJSBtOwogICAgICAgIGF1dG8gaSA9IGZpbmQocy5iZWdpbigpLCBzLmVuZCgpLCB0KTsKICAgICAgICBpZiAoaSA9PSBzLmVuZCgpKSB7CiAgICAgICAgICAgIHMucHVzaF9iYWNrKHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG8gPSAoaSAtIHMuYmVnaW4oKSk7CiAgICAgICAgICAgIHAgPSBzLnNpemUoKSAtIG87CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBzOwp9CgppbnQgcG93bW9kKGludCBhLCBpbnQgbiwgaW50IG0pCnsKICAgIGlmIChuID09IDApIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0gZWxzZSBpZiAobiAmIDEpIHsKICAgICAgICByZXR1cm4gYSAqIHBvd21vZCgxTEwgKiBhICogYSAlIG0sIG4gLyAyLCBtKSAlIG07CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBwb3dtb2QoMUxMICogYSAqIGEgJSBtLCBuIC8gMiwgbSkgJSBtOwogICAgfQp9IAoKaW50IHBvd3Bvd21vZDEwMChpbnQgbikKewogICAgaWYgKG4gPT0gMikgewogICAgICAgIHJldHVybiAxNjsKICAgIH0KICAgIGludCBtID0gbiAlIDEwMDsKICAgIGlmIChtIDw9IDEpIHsKICAgICAgICByZXR1cm4gbTsKICAgIH0KICAgIGludCBvZmZzZXQsIHBlcmlvZDsKICAgIGF1dG8gcyA9IHBvd19tb2Rfc2VxKG0sIDEwMCwgb2Zmc2V0LCBwZXJpb2QpOwogICAgCiAgICBpbnQgaSA9IHBvd21vZChuLCBuLCBwZXJpb2QpIC0gb2Zmc2V0OwogICAgd2hpbGUgKGkgPCAwKSB7CiAgICAgICAgaSArPSBwZXJpb2Q7CiAgICB9CiAgICByZXR1cm4gc1tvZmZzZXQgKyBpXTsKfQoKaW50IG1haW4oKQp7CiAgICBmb3IgKGludCBuOyBjaW4gPj4gbjsgKSB7CiAgICAgICAgY291dCA8PCBuIDw8ICIgPT4gIiA8PCBwb3dwb3dtb2QxMDAobikgPDwgZW5kbDsKICAgIH0KfQo=