#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD=1e9+7;
struct mat{ll a[2][2];};
ll n;
mat mat_mul(mat x,mat y)//矩阵乘法
{
mat res;
memset(res.a,0,sizeof(res.a));
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
for(int k=0;k<2;k++)
(res.a[i][j]+=x.a[i][k]%MOD*y.a[k][j]%MOD)%=MOD;
return res;
}
void mat_pow(ll n)//矩阵快速幂
{
mat c,res;
c.a[0][0]=c.a[0][1]=c.a[1][0]=1;c.a[1][1]=0;//基础矩阵赋值
memset(res.a,0,sizeof res.a);
res.a[0][0]=1;res.a[0][1]=1;//递推数组初值:f[1]=1,f[2]=1
while(n)
{
if(n&1) res=mat_mul(res,c);
c=mat_mul(c,c);
n=n>>1;
}
printf("%lld\n",res.a[0][0]);
}
int main()
{
scanf("%lld",&n);
if(n==1) printf("1\n");//注意特判
else mat_pow(n-2);//计算基础矩阵
return 0;
}