// Asignación de postulantes a carreras. Ya lee la entrada: falta calcular la asignación.
#include <iostream>
#include <vector>

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

    int applicants, careers;
    std::cin >> applicants >> careers;

    std::vector<int> vacancies(careers);
    for (int& v : vacancies) {
        std::cin >> v;
    }

    // applicant_prefs[p]: las carreras en el orden de p, de la que más quiere a la que menos quiere.
    std::vector<std::vector<int>> applicant_prefs(applicants, std::vector<int>(careers));
    for (auto& list : applicant_prefs) {
        for (int& career : list) {
            std::cin >> career;
        }
    }

    // career_prefs[c]: los postulantes en el orden de c, del que más quiere al que menos quiere.
    std::vector<std::vector<int>> career_prefs(careers, std::vector<int>(applicants));
    for (auto& list : career_prefs) {
        for (int& applicant : list) {
            std::cin >> applicant;
        }
    }

    // Por ahora nadie entra a ninguna carrera. Esto es incorrecto.
    for (int p = 0; p < applicants; p++) {
        std::cout << -1 << '\n';
    }
}
