use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, m: usize, t: i64, a: [Usize1; m], } let mut sum = vec![0; n]; a.iter().for_each(|&i| sum[i] += 1); loop { let &maxsum = sum.iter().max().unwrap(); let &minsum = sum.iter().min().unwrap(); let maxi = (0..n).find(|&i| sum[i] == maxsum).unwrap(); let mini = (0..n).find(|&i| sum[i] == minsum).unwrap(); if sum[maxi] - 1 < sum[mini] + t { break; } sum[maxi] -= 1; sum[mini] += t; } println!("{}", sum.iter().max().unwrap()); }