use std::collections::{BTreeSet, HashMap}; use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, x: Usize1, mut a: [usize; n], } // 周期 n + 1 っぽい let mut unused = (0..=n).collect::>(); let mut used = HashMap::new(); for &a in &a { unused.remove(&a); *used.entry(a).or_insert(0) += 1; } for i in 0..n + 2 { let &mex = unused.iter().next().unwrap(); a.push(mex); unused.remove(&mex); *used.entry(mex).or_insert(0) += 1; let front = a[i]; let &cnt = used.get(&front).unwrap(); if cnt > 1 { *used.get_mut(&front).unwrap() -= 1; } else { used.remove(&front); unused.insert(front); } } let ans = if x < a.len() { a[x] } else { a[x % (n + 1) + n + 1] }; println!("{}", ans); }