fn read() -> T { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim().parse().ok().unwrap() } fn main() { let n: usize = read(); let mut dp = vec![vec![0; 10]; n]; let big_int = 1000_000_000 + 7; for j in 0..10 { dp[0][j] = 1; } for i in 0..n - 1 { dp[i + 1][0] = dp[i][0]; for j in 1..10 { dp[i + 1][j] = dp[i][j] + dp[i + 1][j - 1]; dp[i + 1][j] %= big_int; } } let mut ans = 0; for j in 1..10 { ans += dp[n - 1][j]; ans %= big_int; } println!("{:?}", ans + 1); }