module main; // https://yukicoder.me/problems/no/303/editorial より // 数え上げ、多倍長整数、フィボナッチ数 import std; BigInt fib(int n) { BigInt a = 1, a1, b = 1, b1, c = 0, c1, x = 1, x1, y = 0, y1; --n; while (n) { if (n & 1) { x1 = x; y1 = y; x = a * x1 + b * y1; y = b * x1 + c * y1; } n >>= 1; a1 = a; b1 = b; c1 = c; a = a1 * a1 + b1 * b1; b = b1 * (a1 + c1); c = b1 * b1 + c1 * c1; } return x; } void main() { // 入力 int L = readln.chomp.to!int; // 答えの計算と出力 if (L == 2) { writeln(3); writeln("INF"); return; } writeln(L); if (L % 2 == 1) writeln(fib(L)); else writeln(fib(L) - fib(L / 2) ^^ 2); }