'''
    BOJ 11727 번  2*N 타일링 문제 2
    https://www.acmicpc.net/problem/11727

    2 * N 직사각형을 1 * 2, 2 * 1, 2 * 2 타일로 채우는 방법의 수를 구하는 프로그램 작성
    입력은 1 ~ 1000 까지 (n)

    이 문제의 경우 일반화 했을 때,
    D(N) = D(N - 1) + 2 * D(N - 2) 라는 식이 나온다.

    2 * (n - 1) 로 된 직사각형이 있다고 쳤을 때,
    2 * N 이 되기 위해서는 우측에 열 하나를 추가해 주면 되는데 이때 쓰이는게
    2 * 1 직사각형 타일 한개 이고 (경우의 수 한 가지)

    2 * (n - 2) 로 된 직사각형이 있다고 쳤을 때,
    2 * N 이 되기 위해서는 우측에 2 * 2 를 채워넣을 수 있는 사각형이 필요하다.
    이때는, 2 * 2 정사각형 타일 하나가 들어가거나 (경우의 수 한 가지)
    1 * 2 직사각형 타일 두개가 들어가야 완성 된다 (경우의 수 한 가지)
    2 * 1 직사각형 타일이 들어가지 못하는 이유는 n - 1 에서의 모양과 겹치기 때문.

    그래서 이때의 식은
    D(N) = D(N - 1) + 2 * D(N - 2) 가 된다.
'''

import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)

n = int(input())
arr = 1001 * [0]


def dp(n):
    if n == 1:
        return 1
    if n == 2:
        return 3
    if arr[n - 1]:
        return arr[n - 1]
    else:
        arr[n - 1] = dp(n - 1) + 2 * dp(n - 2)
        return arr[n - 1]


print(dp(n) % 10007)
