/* * Author: srtry * Created: 2025-05-10T18:42:06+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; const BIG:usize = 1000000007; fn main() { input!{ n:usize } let out = stdout(); let mut out = BufWriter::new(out.lock()); // 0:K 1:P let mut dp:Vec> = vec![vec![0,0];n+1]; dp[1] = vec![1,0]; dp[2] = vec![1,1]; dp[3] = vec![1,1]; for i in 4..=n { dp[i][0] = (dp[i-1][1] + dp[i-2][1])%BIG; dp[i][1] = (dp[i-2][1] + dp[i-3][1])%BIG; } write!(out, "{}", (dp[n][0]+dp[n][1])%BIG).unwrap(); }