#include using namespace std; int main() { int N, M, T; cin >> N >> M >> T; vector A(N); for (int i = 0; i < M; i++) { int B; cin >> B; A.at(B - 1)++; } multiset S; for (int i : A) S.insert(i); while ((int)S.size() != 1 && *begin(S) + T < *rbegin(S)) { S.insert(*rbegin(S) - 1); S.insert(*begin(S) + T); S.erase(begin(S)); S.erase(S.find(*rbegin(S))); } cout << *rbegin(S) << endl; }