N = gets.to_i
MOD = (10**9) + 7

STRING = %w(A G C T)
BLACK3 = %w(AGC GAC ACG)
BLACK = {
  /.AG/ => 'C',
  /.AC/ => 'G',
  /.GA/ => 'C',
  /A.G/ => 'C',
  /AG./ => 'C'
}

STRING_3 = STRING.repeated_permutation(3).map(&:join).reject { |s| BLACK3.include?(s) }
STRING_3_WITH_NEXT = STRING_3.each_with_object({}) { |str3, obj|
  obj[str3] = STRING - BLACK.each_with_object([]) {
    |(reg, str), obj|
    obj << str if reg === str3
  }
}

dp = Array.new(N+1) { Hash.new(0) }

STRING_3.each { |str| dp[3][str] = 1 }

4.step(N) do |i|
  STRING_3_WITH_NEXT.each do |str, next_strs|
    next_strs.each do |next_str|
      dp[i][str[1..2]+ next_str] = (dp[i - 1][str] + dp[i][str[1..2]+ next_str])%MOD
    end
  end
end

puts (dp[N].values.reduce(:+)%MOD)