#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
// 题目链接: http://acm.fzu.edu.cn/problem.php?pid=1559
/*
递推公式: dp[i] = 3 * dp[i-1] - 2 * dp[i-2] + 2^(i-2) - 1
*/
const int mod = 2007;
const int maxn = 5010;
int power_mod(int a, int b) {
int ret = 1;
while(b) {
if(b&1) ret = ret * a % mod;
a = a * a % mod;
b >>= 1;
}
return ret;
}
int dp[maxn];
int main() {
dp[1] = 1;
dp[2] = 3;
for(int i = 3; i <= 5000; ++i) {
dp[i] = (3*dp[i-1] - 2*dp[i-2] + power_mod(2, i-2) - 1) % mod;
if(dp[i] < 0) dp[i] += mod;
}
int n;
while(scanf("%d", &n) != EOF) {
printf("%d\n", dp[n]);
}
return 0;
}