#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define rl register ll
const ll N = 3;
ll n, m = 1e9+7;
inline void mul(ll c[], ll a[], ll b[][N])
{
ll temp[N] = {0, 0, 0};
for(rl i=0 ;i < N; ++ i)
for(rl j=0; j < N; ++ j)
{
temp[i] = (temp[i] + a[j] * b[j][i]) % m;
}
memcpy(c, temp, sizeof temp);
}
inline void mul(ll c[][N], ll a[][N], ll b[][N])
{
ll temp[N][N] = {0};
for(rl i=0; i < N; ++ i)
for(rl j=0; j < N ; ++ j)
for(rl k=0; k < N; ++ k)
temp[i][j] = (temp[i][j] + a[i][k] * b[k][j]) % m;
memcpy(c, temp, sizeof temp);
}
int main()
{
scanf("%lld", &n);
ll f1[N] = {1, 1, 1};
ll a[N][N] = {
{0, 1, 0},
{1, 1, 1},
{0, 0, 1}};
n -= 2;
while(n)
{
if(n & 1) mul(f1, f1, a);
mul(a, a, a);
n >>= 1;
}
printf("%lld\n", f1[1]);
return 0;
}