local DBG = false
local function dbgpr(...)
    if DBG then
        io.write("[dbg]")
        print(...)
    end
end

local function dbgpr_t(tbl, use_pairs)
    if DBG then
        local enum = ipairs
        if use_pairs then
            enum = pairs
        end
        dbgpr(tbl)
        io.write("[dbg]")
        for i,v in enum(tbl) do
            io.write(i)
            io.write(":")
            io.write(tostring(v))
            io.write(" ")
        end
        print("")
    end
end

local function dbgpr_tp(tbl)
    dbgpr_t(tbl, true)
end
-----------------------------------------
local MOD = 1000000007

local function pow4(n)
    local a = 1
    for i=1,n do
        a = a * 4 % MOD
    end
    return a
end

local ng_a, ng_c, ng_g, ng_t, ng

local ng_a_tbl = {0,0,2}
ng_a = function(k)
    dbgpr("ng_a", k)
    if ng_a_tbl[k] ~= nil then
        return ng_a_tbl[k]
    end
    local x = (ng_a(k-1) + pow4(k-3) + ng_t(k-1) + pow4(k-3)) % MOD
    ng_a_tbl[k] = x
    return x
end

local ng_c_tbl = {0,0,0}
ng_c = function(k)
    dbgpr("ng_c", k)
    if ng_c_tbl[k] ~= nil then
        return ng_c_tbl[k]
    end
    local x = ng(k-1)
    ng_c_tbl[k] = x
    return x
end

local ng_t_tbl = {0,0,0}
ng_t = function(k)
    dbgpr("ng_t", k)
    if ng_t_tbl[k] ~= nil then
        return ng_t_tbl[k]
    end
    local x = ng(k-1)
    ng_t_tbl[k] = x
    return x
end

local ng_g_tbl = {0,0,1}
ng_g = function(k)
    dbgpr("ng_g", k)
    if ng_g_tbl[k] ~= nil then
        return ng_g_tbl[k]
    end
    local x = (ng_c(k-1) + ng_g(k-1) + ng_t(k-1) + pow4(k-3)) % MOD
    ng_g_tbl[k] = x
    return x
end

local ng_tbl = {0,0,3}
ng = function(k)
    dbgpr("ng", k)
    if ng_tbl[k] ~= nil then
        return ng_tbl[k]
    end
    local x = (ng_a(k) + ng_c(k) + ng_g(k) + ng_t(k)) % MOD
    ng_tbl[k] = x
    return x
end

local function ok(k)
    return (pow4(k) - ng(k) + MOD) % MOD
end

--for i=3,6 do
--    print(i, ok(i))
--end

local N = io.read("n")
print(ok(N))
