#include #include #include #include using namespace std; int main() { int n, m, t; cin >> n >> m >> t; vector a(m); for (int i = 0; i < m; ++i) cin >> a[i]; if (n == 1) { cout << m << endl; return 0; } vector c(n); for (int i = 0; i < m; ++i) { --a[i]; ++c[a[i]]; } multiset ms(c.begin(), c.end()); while (true) { int ba = *ms.rbegin(); auto itr = ms.begin(); int tmp = *itr; ms.erase(itr); auto ritr = ms.end(); --ritr; ms.erase(ritr); ms.insert(tmp + t); ms.insert(ba - 1); int aa = *ms.rbegin(); if (ba <= aa) { cout << ba << endl; return 0; } } }