p, g, ig = p, g, ig = 100000000000006291457, 3, 33333333333335430486 W = [pow(g, (p - 1) >> i, p) for i in range(24)] iW = [pow(ig, (p - 1) >> i, p) for i in range(24)] mod = p def convolve(a, b): def fft(f): for l in range(k, 0, -1): d = 1 << l - 1 U = [1] for i in range(d): U.append(U[-1] * W[l] % p) for i in range(1 << k - l): for j in range(d): s = i * 2 * d + j t = s + d f[s], f[t] = (f[s] + f[t]) % p, U[j] * (f[s] - f[t]) % p def ifft(f): for l in range(1, k + 1): d = 1 << l - 1 U = [1] for i in range(d): U.append(U[-1] * iW[l] % p) for i in range(1 << k - l): for j in range(d): s = i * 2 * d + j t = s + d f[s], f[t] = (f[s] + f[t] * U[j]) % p, (f[s] - f[t] * U[j]) % p n0 = len(a) + len(b) - 1 if len(a) < 50 or len(b) < 50: ret = [0] * n0 if len(a) > len(b): a, b = b, a for i, aa in enumerate(a): for j, bb in enumerate(b): ret[i+j] = (ret[i+j] + aa * bb) % p return ret k = (n0).bit_length() n = 1 << k a = a + [0] * (n - len(a)) b = b + [0] * (n - len(b)) fft(a), fft(b) for i in range(n): a[i] = a[i] * b[i] % p ifft(a) invn = pow(n, p - 2, p) for i in range(n0): a[i] = a[i] * invn % p del a[n0:] return a def find_generating_function(A): N = len(A) B = [1] C = [1] l, m, b = 0, 1, 1 for i in range(N): d = A[i] for j in range(1, l + 1): d = (d + C[j] * A[i-j]) % mod if d == 0: m += 1 continue T = C[:] ibd = pow(b, mod - 2, mod) * d % mod C += [0] * (len(B) + m - len(C)) for j in range(len(B)): C[j + m] = (C[j + m] - ibd * B[j]) % mod if l * 2 <= i: B = T l, m, b = i + 1 - l, 1, d else: m += 1 g = C f = convolve(A[:len(g)], g)[:len(g) - 1] return f, g def coef_of_generating_function(f, g, n): assert g[0] == 1 and len(g) == len(f) + 1 while n: gg = [mod - a if i & 1 else a for i, a in enumerate(g)] f = convolve(f, gg)[n&1::2] g = convolve(g, gg)[::2] n >>= 1 return f[0] X = [{(0, 0)}] dd = [(1, 1), (0, 1), (-1, 1), (-1, -1), (1, -1)] for _ in range(10): pr = X[-1] ne = set(pr) for x, y in pr: for dx, dy in dd: nx, ny = x + dx, y + dy ne.add((nx, ny)) X.append(ne) # print(len(ne)) A = [len(x) for x in X] # print("A =", A) f, g = find_generating_function(A) n = int(input()) print(coef_of_generating_function(f, g, n))