using System; class Magatro { static void Main() { new Magatro().Solve(); } private const int Mod=1000000007; private long[,] M(long[,] a,long[,] b) { var res=new long[2,2]; res[0,0]=(a[0,0]*b[0,0])+(a[0,1]*b[1,0]); res[1,0]=(a[1,0]*b[0,0])+(a[1,1]*b[1,0]); res[0,1]=(a[0,0]*b[0,1])+(a[0,1]*b[1,1]); res[1,1]=(a[1,0]*b[0,1])+(a[1,1]*b[1,1]); res[0,0]%=Mod; res[1,0]%=Mod; res[0,1]%=Mod; res[1,1]%=Mod; return res; } private long Fib(long n) { long[,] ans=null; long[,]a={{1,1},{1,0}}; while(n>0) { if(n%2==1) { if(ans==null) { ans=a; } else { ans=M(ans,a); } } n/=2; a=M(a,a); } return (ans[0,0]+ans[0,1])%Mod; } private long Modulo(string s,long mod) { long res=0; foreach(char c in s) { res*=10; res+=(c-'0'); res%=mod; } return res; } private long Pow(long x,long y) { long res=1; x%=Mod; if(x==0)return 0; while(y>0) { if(y%2==1) { res*=x; res%=Mod; } y/=2; x*=x; x%=Mod; } return res; } public void Solve() { long result=1; int N=int.Parse(Console.ReadLine()); for(int i=0;i