#include<iostream>
using namespace std;
const int mod = 1e9+7;
int n;
struct mat{
long long a[2][2];
friend mat operator*(mat a,mat b){
mat c;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++) c.a[i][j]=0;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
for(int k=0;k<2;k++) c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j]%mod)%mod;
return c;
}
};
mat _pow(mat a,int b){
mat res;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++) res.a[i][j]=0;
for(int i=0;i<2;i++) res.a[i][i]=1;
while(b){
if(b%2==1) res=res*a;
a=a*a;
b/=2;
}
return res;
}
int main(){
cin>>n;
if(n<=2){
cout<<"1";
return 0;
}
mat bsc;
bsc.a[0][0]=1,bsc.a[0][1]=1,bsc.a[1][0]=1,bsc.a[1][1]=0;
mat ans=_pow(bsc,n-1);
cout<<ans.a[0][0]%mod;
return 0;
}