#include <iostream>
#include <vector>
using namespace std;
#define REP(i,a) for (int i = 0; i < (a); i++)
#define FOR(i,a,b) for (int i = (a); i <= (b); i++)
#define ROF(i,a,b) for (int i = (a); i >= (b); i--)
#define SZ(x) (int)(x).size()

int n,k;
string name[105];
int L[105],R[105];
vector<int> G[105];
int day[105];
bool seen[105];

bool cuplat(int node)
{
    if (seen[node]) return 0;
    seen[node] = 1;
    FOR(i,0,SZ(G[node])-1) {
        int d = G[node][i];
        if (R[d] == 0 || cuplat(R[d])) {
            L[node] = d;
            R[d] = node;
            return 1;
        }
    }
    return 0;
}

int main()
{
    ios_base::sync_with_stdio(false);

    cin >> n >> k;
    FOR(i,1,n) {
        cin >> name[i];
        FOR(j,1,k) {
            cin >> day[j];
            if (j < 3) continue;
            if (day[j] > day[j-1] && day[j-1] > day[j-2]) G[i].push_back(j);
        }
    }

    int cuplaj = 0;

    bool ok = 1;
    while (ok) {
        ok = 0;
        FOR(i,1,n) seen[i] = 0;
        FOR(i,1,n) if (L[i] == 0 && cuplat(i)) {
            ok = 1;
            cuplaj++;
        }
    }

    FOR(i,1,k) {
        if (R[i] == 0) cout << "none\n";
        else cout << name[R[i]] << "\n";
    }
}