#include<iostream> #include<cstring> #include<cstdio> using namespace std; long long a[2][2],b[2][2],n,_; void mul(long long a[2][2],long long b[2][2],long long ans[2][2]){ long long t[2][2]; memset(t,0,sizeof(t)); for(long long i=0;i<=1;i++) for(long long j=0;j<=1;j++) for(long long k=0;k<=1;k++) t[i][j]=(t[i][j]+a[i][k]*b[k][j])%1000000007; for(long long i=0;i<=1;i++) for(long long j=0;j<=1;j++) ans[i][j]=t[i][j]; } void init(){ a[0][0]=a[0][1]=a[1][0]=b[0][0]=b[1][1]=1; b[1][0]=b[0][1]=a[1][1]=0; } int main(){ while(~scanf("%lld",&n)){ init(); while(n){ if(n&1)mul(a,b,b); n>>=1;mul(a,a,a); } printf("%lld\n",b[1][0]); } return 0; }