fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); const DIVISOR: usize = 1_000_000_007; let mut ken1: Vec = vec![0; n]; let mut ken2: Vec = vec![0; n]; let mut pa: Vec = vec![0; n]; ken1[0] = 1; for i in 1..n { ken2[i] += ken1[i-1]; ken1[i] += pa[i-1]; pa[i] += ken1[i-1] + ken2[i-1]; ken2[i] %= DIVISOR; ken1[i] %= DIVISOR; pa[i] %= DIVISOR; } println!("{}", (ken1[n-1] + ken2[n-1] + pa[n-1]) % DIVISOR); }