#include <cstring>
#include <iostream>
using namespace std;

#define ll long long

ll memo[2000][4][4];

ll dp(int col, int drow, int grow) {
	// row out of bound
	if (drow < 0 || 4 <= drow || grow < 0 || 4 <= grow)
		return 0;
	// d crossed with g
	if (grow <= drow)
		return 0;
	// first column
	if (col == 1) {
		if (drow == 0 && grow == 3)
			return 1;
		else
			return 0;
	}
	if (memo[col][drow][grow] != -1)
		return memo[col][drow][grow];
		
	memo[col][drow][grow] = 0;
	memo[col][drow][grow] += dp(col-1, drow-1, grow-1);
	memo[col][drow][grow] += dp(col-1, drow-1, grow+1);
	memo[col][drow][grow] += dp(col-1, drow+1, grow-1);
	memo[col][drow][grow] += dp(col-1, drow+1, grow+1);
	memo[col][drow][grow] = memo[col][drow][grow] % 7;
	
	return memo[col][drow][grow];
}

int main() {
	int N;
	cin >> N;
	memset(memo, -1, sizeof(memo));
	ll ans = 0;
	for (int i = 0; i < 4; i++)
		for (int j = i+1; j < 4; j++)
			ans += dp(N, i, j);
	cout << ans % 7 << endl;
}