int main() {
function writeln = lambda(mixed x) {write(x + "\n");};
writeln(Function.Y(lambda(function f, int n) {return n == 0 ? 1 : n * f(n - 1);})(21));
writeln(Array.reduce(`*, enumerate(21, 1, 1), 0));
return 0;
}
aW50IG1haW4oKSB7CglmdW5jdGlvbiB3cml0ZWxuID0gbGFtYmRhKG1peGVkIHgpIHt3cml0ZSh4ICsgIlxuIik7fTsKCXdyaXRlbG4oRnVuY3Rpb24uWShsYW1iZGEoZnVuY3Rpb24gZiwgaW50IG4pIHtyZXR1cm4gbiA9PSAwID8gMSA6IG4gKiBmKG4gLSAxKTt9KSgyMSkpOwoJd3JpdGVsbihBcnJheS5yZWR1Y2UoYCosIGVudW1lcmF0ZSgyMSwgMSwgMSksIDApKTsKCXJldHVybiAwOwp9