const MOD: usize = 1e9 as usize + 7; fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut dp = vec![vec![0usize; 4]; n+1]; dp[0][0] = 1; for i in 0..n { for from in 0..4 { if dp[i][from] == 0 { continue; } for to in 1..4 { if from == to { continue; } if i + to <= n { dp[i+to][to] += dp[i][from]; dp[i+to][to] %= MOD; } } } } println!("{}", dp[n].iter().sum::() % MOD); }