import math L = int(input()) def nCb(n, b): if b == 1: return max(n, 1) return math.factorial(n)//math.factorial(b)//math.factorial(n - b) def solve(L): if L == 1: return 1, 1 elif L == 2: return 4, 1 if L & 1: return L, f(L) else: return L, f(L) - f(L//2) ** 2 def f(L): ''' 奇数の和がLとなる奇数の並べ方の数。 ''' if L & 1: return f_odd(L) else: return f_even(L) def f_odd(L): if L == 1: return 1 if L == 3: return 2 cum = 2 for k in range(3, L, 2): cum += nCb((L - k)//2 + k - 1, k - 1) return cum def f_even(L): if L == 2: return 1 if L == 4: return 3 cum = 1 for k in range(2, L, 2): cum += nCb((L - k)//2 + k - 1, k - 1) return cum cost, pat = solve(L) print(cost) print(pat)