#include<bits/stdc++.h>
#define ll unsigned long long
const ll mod=1e9+7;
using namespace std;
struct Matrix{
ll p[3][3];
inline void clear(){
for(int i=1;i<=2;i++){
for(int j=1;j<=2;j++){
p[i][j]=0;
}
}
}
inline void init(){
clear();
for(int i=1;i<=2;i++){
p[i][i]=1;
}
}
}base,ans,mul;
Matrix operator*(Matrix &a,Matrix &b){
Matrix ans;
ans.clear();
for(int i=1;i<=2;i++){
for(int j=1;j<=2;j++){
for(int k=1;k<=2;k++){
ans.p[i][j]+=a.p[i][k]*b.p[k][j]%mod;
ans.p[i][j]%=mod;
}
}
}
return ans;
}
ll n;
inline ll read(){
ll x=0;
bool f=0;
char c=getchar();
while(!isdigit(c)){if(c=='-')f=1;c=getchar();}
while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
return f?-x:x;
}
int main(){
n=read();
base.clear();
mul.clear();
ans.init();
base.p[1][1]=base.p[2][1]=1;
mul.p[1][1]=mul.p[1][2]=mul.p[2][1]=1;
n-=2;
while(n){
if(n&1){
ans=ans*mul;
}
mul=mul*mul;
n>>=1;
}
ans=ans*base;
cout<<ans.p[1][1]%mod;
}
求调