#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define maxn 11
int n;
struct matrix
{
long long data[maxn][maxn];
int column,row;
matrix(int r,int c,bool isI)
{
column=c;
row=r;
memset(data,0,sizeof(data));
if(isI)
{
for(int i=0;i<row;i++)
data[i][i]=1;
}
}
};
matrix operator *(const matrix &a,const matrix &b)
{
matrix c(a.row,b.column,0);
for(int i=0;i<a.row;i++)
for(int j=0;i<b.column;j++)
for(int k=0;k<a.column;k++)
c.data[i][j]=(c.data[i][j]+a.data[i][k]*b.data[k][j])%mod;
return c;
}
matrix pow(matrix base,int ex)
{
matrix ans(base.row,base.column,1);
for(;ex;ex>>=1)
{
if(ex&1)ans=ans*base;
base=base*base;
}
return ans;
}
int main()
{
cin>>n;
if(n<=2)
cout<<1;
else
{
matrix coef(2,2,0),f(1,2,0),ans(1,2,0);
coef.data[0][0]=0;
coef.data[0][1]=1;
coef.data[1][0]=1;
coef.data[1][1]=1;
f.data[0][0]=1;
f.data[0][1]=1;
ans=f*pow(coef,n-2);
cout<<ans.data[0][1];
}
}