using System; using System.Collections.Generic; using System.Collections; using System.Collections.Specialized; using System.Linq; using System.Text; using System.IO; using System.Reflection; using static System.Math; using System.Numerics; static class Program{ const int mod=(int)1e9+7; const double eps=1e-11; static void Main(){ Sc sc=new Sc(); long n=sc.L; var g=new long[][]{new long[]{1,1},new long[]{1,0}}; var b=new long[][]{new long[]{0},new long[]{1}}; var c=Mp(b,g,n+1); Console.WriteLine("{0}",(c[0][0]*c[1][0])%mod); } static long[][] Mp(long[][] r,long[][] x,long e){ while(e>0){ if((e&1)>0){r=Mm(x,r);} x=Mm(x,x); e>>=1; } return r; } static long[][] Mm(long[][] a,long[][] b){ var q=new long[a.Length][]; for(int j=0;j(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i