/*
    OBI 2026 - Fase 1
    Cinema
    Solução usando set: O(N log M)
    Para cada pessoa i, usa lower_bound no set de sessões disponíveis
    para encontrar a menor Hj >= Ti. Se encontrar e a sessão não estiver
    cheia, aloca a pessoa. Quando a sessão enche, remove do set.
*/

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m, c;
    cin >> n >> m >> c;

    vector<int> t(n), h(m);
    for (int i = 0; i < n; i++) cin >> t[i];
    for (int j = 0; j < m; j++) cin >> h[j];

    // Set de sessões disponíveis: (h[j], j) ordenado por h[j], depois por j
    set<pair<int, int>> avail;
    vector<int> ans(m, 0);

    for (int j = 0; j < m; j++) {
        avail.insert({h[j], j});
    }

    for (int i = 0; i < n; i++) {
        // Encontra primeira sessão disponível com Hj >= Ti
        auto it = avail.lower_bound({t[i], -1});
        if (it == avail.end()) continue;  // nenhuma sessão disponível

        int j = it->second;
        ans[j]++;
        if (ans[j] == c) {
            avail.erase(it);  // sessão cheia, remove do set
        }
    }

    for (int j = 0; j < m; j++) {
        cout << ans[j];
        if (j < m - 1) cout << ' ';
    }
    cout << '\n';
    return 0;
}
