use proconio::input; fn main() { input! { n: usize, m: u64, } let ans = if n % 3 == 0 { let n = n / 3; let mut dp = vec![0; n + 1]; let mut ep = vec![0; n + 1]; ep[0] = 1; for i in 1..=n { dp[i] = ((0..i).map(|j| ep[j] * ep[i - 1 - j] % m).sum::()) % m; ep[i] = (dp[i] + (1..i).map(|j| ep[j] * dp[i - j] % m).sum::()) % m; } ep[n] } else { 0 }; println!("{}", ans); }