from collections import defaultdict import sys,heapq,bisect,math,itertools,string sys.setrecursionlimit(10**8) INF = float('inf') mod = 10**9+7 AtoZ = [chr(i) for i in range(65,65+26)] atoz = [chr(i) for i in range(97,97+26)] def fib(n): if n <= 1: return n result = [1, 0, 0, 1] matrix = [1, 1, 1, 0] while n > 0: if n % 2: result = mul(matrix, result) matrix = mul(matrix, matrix) n //= 2 return result[2]%mod def mul(a, b): return [(a[0]*b[0] + a[1]*b[2])%mod, (a[0]*b[1] + a[1]*b[3])%mod, (a[2]*b[0] + a[3]*b[2])%mod, (a[2]*b[1] + a[3]*b[3])%mod] N = int(input()) print(fib(N)*fib(N+1)%mod)