#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

bool ap[128];
char str[128][128];
int le[128], ri[128], a[128][128];
vector <int> v[128];

int cupleaza (int nod)
{
    if (ap[nod]) return 0;
    ap[nod] = 1;

    if (v[nod].size () == 0) return 0;
    for (int i = 0; i < v[nod].size (); ++i)
    {
        int it = v[nod][i];

        if (!ri[it])
        {
            le[nod] = it;
            ri[it] = nod;

            return 1;
        }
    }

    for (int i = 0; i < v[nod].size (); ++i)
    {
        int it = v[nod][i];

        if (cupleaza (ri[it]))
        {
            le[nod] = it;
            ri[it] = nod;

            return 1;
        }
    }

    return 0;
}

int main ()
{
    //freopen ("file.in", "r", stdin);

    int n, k;
    scanf ("%d %d", &n, &k);

    for (int i = 1; i <= n; ++i)
    {
        scanf ("%s", &str[i]);

        for (int j = 1; j <= k; ++j)
        {
            scanf ("%d" , &a[i][j]);

            if (j >= 3)
                if (a[i][j] > a[i][j - 1] && a[i][j - 1] > a[i][j - 2])
                    v[j].push_back (i);
        }
    }

    int OK = 1;
    for (; OK;)
    {
        OK = 0;

        for (int i = 1; i <= k; ++i)
            ap[i] = false;

        for (int i = 1; i <= k; ++i)
            if (!le[i]) OK = max (OK, cupleaza (i));
    }

    for (int i = 1; i <= k; ++i)
        if (!le[i]) printf ("none\n");
        else puts (str[le[i]]);

    return 0;
}