#include <iostream>
#define For(i, a, b) for (int i = (a); i <= (b); i ++)
#define foR(i, a, b) for (int i = (a); i >= (b); i --)
#define int long long
using namespace std;
int n, m, k, ans, cnt;
int b[400005], c[400005];
int b_[400005];
signed main () {
cin >> n >> m >> k;
For (i, 1, n) {
cin >> c[i];
++ b_[c[i] ];
}
For (i, 1, n) b_[c[i] ] = min (b_[c[i] ], k);
For (i, n + 1, 2 * n) c[i] = c[i - n];
int l = 1;
For (i, 1, l + n) {
if (cnt == m) {
cout << ans << '\n';
++ l;
if (l == n + 1) break;
-- b[c[l - 1] ];
if (b[c[l - 1] ] == 0) {
-- cnt;
ans -= b_[c[l - 1] ];
} else {
-- i;
continue;
}
}
++ b[c[i] ];
if (b[c[i] ] == 1) {
++ cnt;
ans += b_[c[i] ];
}
if (i == l + n - 1 && cnt != m) {
For (j, 1, n) cout << ans << '\n';
return 0;
}
}
return 0;
}