using System;
namespace inonoa{
    class ABC{
        static void Main(){
            int im = 1000000007;
            long n = long.Parse(Console.ReadLine());
            long[,,,] dp = new long[n-2,4,4,4];
            const int a = 0; const int g = 1; const int c = 2; const int t = 3;

            for(int i=0;i<4;i++){
                for(int j=0;j<4;j++){
                    for(int k=0;k<4;k++){
                        dp[0,i,j,k] = 1;
                    }
                }
            }
            dp[0,a,g,c] = 0;
            dp[0,g,a,c] = 0;
            dp[0,a,c,g] = 0;

            for(int i=1;i<n-2;i++){

                dp[i,a,a,a] = dp[i-1,a,a,a] + dp[i-1,g,a,a] + dp[i-1,c,a,a] + dp[i-1,t,a,a];
                dp[i,a,a,g] = dp[i-1,a,a,a] + dp[i-1,g,a,a] + dp[i-1,c,a,a] + dp[i-1,t,a,a];
                dp[i,a,a,c] = dp[i-1,a,a,a] + dp[i-1,g,a,a] + dp[i-1,c,a,a] + dp[i-1,t,a,a];
                dp[i,a,a,t] = dp[i-1,a,a,a] + dp[i-1,g,a,a] + dp[i-1,c,a,a] + dp[i-1,t,a,a];

                dp[i,a,g,a] = dp[i-1,a,a,g] + dp[i-1,g,a,g] + dp[i-1,c,a,g] + dp[i-1,t,a,g];
                dp[i,a,g,g] = dp[i-1,a,a,g] + dp[i-1,g,a,g] + dp[i-1,c,a,g] + dp[i-1,t,a,g];
                dp[i,a,g,c] = 0                                                            ;
                dp[i,a,g,t] = dp[i-1,a,a,g] + dp[i-1,g,a,g] + dp[i-1,c,a,g] + dp[i-1,t,a,g];

                dp[i,a,c,a] = dp[i-1,a,a,c]                 + dp[i-1,c,a,c] + dp[i-1,t,a,c];
                dp[i,a,c,g] = 0                                                            ;
                dp[i,a,c,c] = dp[i-1,a,a,c] + dp[i-1,g,a,c] + dp[i-1,c,a,c] + dp[i-1,t,a,c];
                dp[i,a,c,t] = dp[i-1,a,a,c] + dp[i-1,g,a,c] + dp[i-1,c,a,c] + dp[i-1,t,a,c];

                dp[i,a,t,a] = dp[i-1,a,a,t] + dp[i-1,g,a,t] + dp[i-1,c,a,t] + dp[i-1,t,a,t];
                dp[i,a,t,g] = dp[i-1,a,a,t] + dp[i-1,g,a,t] + dp[i-1,c,a,t] + dp[i-1,t,a,t];
                dp[i,a,t,c] = dp[i-1,a,a,t] + dp[i-1,g,a,t] + dp[i-1,c,a,t] + dp[i-1,t,a,t];
                dp[i,a,t,t] = dp[i-1,a,a,t] + dp[i-1,g,a,t] + dp[i-1,c,a,t] + dp[i-1,t,a,t];

                
                dp[i,g,a,a] = dp[i-1,a,g,a] + dp[i-1,g,g,a] + dp[i-1,c,g,a] + dp[i-1,t,g,a];
                dp[i,g,a,g] = dp[i-1,a,g,a] + dp[i-1,g,g,a] + dp[i-1,c,g,a] + dp[i-1,t,g,a];
                dp[i,g,a,c] = 0;
                dp[i,g,a,t] = dp[i-1,a,g,a] + dp[i-1,g,g,a] + dp[i-1,c,g,a] + dp[i-1,t,g,a];

                dp[i,g,g,a] = dp[i-1,a,g,g] + dp[i-1,g,g,g] + dp[i-1,c,g,g] + dp[i-1,t,g,g];
                dp[i,g,g,g] = dp[i-1,a,g,g] + dp[i-1,g,g,g] + dp[i-1,c,g,g] + dp[i-1,t,g,g];
                dp[i,g,g,c] =               + dp[i-1,g,g,g] + dp[i-1,c,g,g] + dp[i-1,t,g,g];
                dp[i,g,g,t] = dp[i-1,a,g,g] + dp[i-1,g,g,g] + dp[i-1,c,g,g] + dp[i-1,t,g,g];

                dp[i,g,c,a] =               + dp[i-1,g,g,c] + dp[i-1,c,g,c] + dp[i-1,t,g,c];
                dp[i,g,c,g] =               + dp[i-1,g,g,c] + dp[i-1,c,g,c] + dp[i-1,t,g,c];
                dp[i,g,c,c] =               + dp[i-1,g,g,c] + dp[i-1,c,g,c] + dp[i-1,t,g,c];
                dp[i,g,c,t] =               + dp[i-1,g,g,c] + dp[i-1,c,g,c] + dp[i-1,t,g,c];

                dp[i,g,t,a] = dp[i-1,a,g,t] + dp[i-1,g,g,t] + dp[i-1,c,g,t] + dp[i-1,t,g,t];
                dp[i,g,t,g] = dp[i-1,a,g,t] + dp[i-1,g,g,t] + dp[i-1,c,g,t] + dp[i-1,t,g,t];
                dp[i,g,t,c] =               + dp[i-1,g,g,t] + dp[i-1,c,g,t] + dp[i-1,t,g,t];
                dp[i,g,t,t] = dp[i-1,a,g,t] + dp[i-1,g,g,t] + dp[i-1,c,g,t] + dp[i-1,t,g,t];
                

                dp[i,c,a,a] = dp[i-1,a,c,a] + dp[i-1,g,c,a] + dp[i-1,c,c,a] + dp[i-1,t,c,a];
                dp[i,c,a,g] = dp[i-1,a,c,a] + dp[i-1,g,c,a] + dp[i-1,c,c,a] + dp[i-1,t,c,a];
                dp[i,c,a,c] = dp[i-1,a,c,a] + dp[i-1,g,c,a] + dp[i-1,c,c,a] + dp[i-1,t,c,a];
                dp[i,c,a,t] = dp[i-1,a,c,a] + dp[i-1,g,c,a] + dp[i-1,c,c,a] + dp[i-1,t,c,a];

                dp[i,c,g,a] =               + dp[i-1,g,c,g] + dp[i-1,c,c,g] + dp[i-1,t,c,g];
                dp[i,c,g,g] =               + dp[i-1,g,c,g] + dp[i-1,c,c,g] + dp[i-1,t,c,g];
                dp[i,c,g,c] =               + dp[i-1,g,c,g] + dp[i-1,c,c,g] + dp[i-1,t,c,g];
                dp[i,c,g,t] =               + dp[i-1,g,c,g] + dp[i-1,c,c,g] + dp[i-1,t,c,g];
                
                dp[i,c,c,a] = dp[i-1,a,c,c] + dp[i-1,g,c,c] + dp[i-1,c,c,c] + dp[i-1,t,c,c];
                dp[i,c,c,g] = dp[i-1,a,c,c] + dp[i-1,g,c,c] + dp[i-1,c,c,c] + dp[i-1,t,c,c];
                dp[i,c,c,c] = dp[i-1,a,c,c] + dp[i-1,g,c,c] + dp[i-1,c,c,c] + dp[i-1,t,c,c];
                dp[i,c,c,t] = dp[i-1,a,c,c] + dp[i-1,g,c,c] + dp[i-1,c,c,c] + dp[i-1,t,c,c];

                dp[i,c,t,a] = dp[i-1,a,c,t] + dp[i-1,g,c,t] + dp[i-1,c,c,t] + dp[i-1,t,c,t];
                dp[i,c,t,g] = dp[i-1,a,c,t] + dp[i-1,g,c,t] + dp[i-1,c,c,t] + dp[i-1,t,c,t];
                dp[i,c,t,c] = dp[i-1,a,c,t] + dp[i-1,g,c,t] + dp[i-1,c,c,t] + dp[i-1,t,c,t];
                dp[i,c,t,t] = dp[i-1,a,c,t] + dp[i-1,g,c,t] + dp[i-1,c,c,t] + dp[i-1,t,c,t];

                
                dp[i,t,a,a] = dp[i-1,a,t,a] + dp[i-1,g,t,a] + dp[i-1,c,t,a] + dp[i-1,t,t,a];
                dp[i,t,a,g] = dp[i-1,a,t,a] + dp[i-1,g,t,a] + dp[i-1,c,t,a] + dp[i-1,t,t,a];
                dp[i,t,a,c] = dp[i-1,a,t,a] + dp[i-1,g,t,a] + dp[i-1,c,t,a] + dp[i-1,t,t,a];
                dp[i,t,a,t] = dp[i-1,a,t,a] + dp[i-1,g,t,a] + dp[i-1,c,t,a] + dp[i-1,t,t,a];

                dp[i,t,g,a] = dp[i-1,a,t,g] + dp[i-1,g,t,g] + dp[i-1,c,t,g] + dp[i-1,t,t,g];
                dp[i,t,g,g] = dp[i-1,a,t,g] + dp[i-1,g,t,g] + dp[i-1,c,t,g] + dp[i-1,t,t,g];
                dp[i,t,g,c] =               + dp[i-1,g,t,g] + dp[i-1,c,t,g] + dp[i-1,t,t,g];
                dp[i,t,g,t] = dp[i-1,a,t,g] + dp[i-1,g,t,g] + dp[i-1,c,t,g] + dp[i-1,t,t,g];

                dp[i,t,c,a] = dp[i-1,a,t,c] + dp[i-1,g,t,c] + dp[i-1,c,t,c] + dp[i-1,t,t,c];
                dp[i,t,c,g] = dp[i-1,a,t,c] + dp[i-1,g,t,c] + dp[i-1,c,t,c] + dp[i-1,t,t,c];
                dp[i,t,c,c] = dp[i-1,a,t,c] + dp[i-1,g,t,c] + dp[i-1,c,t,c] + dp[i-1,t,t,c];
                dp[i,t,c,t] = dp[i-1,a,t,c] + dp[i-1,g,t,c] + dp[i-1,c,t,c] + dp[i-1,t,t,c];

                dp[i,t,t,a] = dp[i-1,a,t,t] + dp[i-1,g,t,t] + dp[i-1,c,t,t] + dp[i-1,t,t,t];
                dp[i,t,t,g] = dp[i-1,a,t,t] + dp[i-1,g,t,t] + dp[i-1,c,t,t] + dp[i-1,t,t,t];
                dp[i,t,t,c] = dp[i-1,a,t,t] + dp[i-1,g,t,t] + dp[i-1,c,t,t] + dp[i-1,t,t,t];
                dp[i,t,t,t] = dp[i-1,a,t,t] + dp[i-1,g,t,t] + dp[i-1,c,t,t] + dp[i-1,t,t,t];

                for(int l=0;l<4;l++){
                    for(int j=0;j<4;j++){
                        for(int k=0;k<4;k++){
                            dp[i,l,j,k] %= im;
                        }
                    }
                }
            }

            long ans = 0;
            for(int i=0;i<4;i++){
                for(int j=0;j<4;j++){
                    for(int k=0;k<4;k++){
                        ans += dp[n-3,i,j,k];
                        ans %= im;
                    }
                }
            }
            Console.WriteLine(ans);
        }
    }
}

Measured memory_bytes: 11840