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

using namespace std;

const int kMaxSize = 2001;

struct column  
{
    char characters[kMaxSize];
    int originalIdx;
};

char matrix[kMaxSize][kMaxSize];
column columns[kMaxSize];
int n, m;
int key[kMaxSize];

bool cmp(const column& first, const column& second)
{
    return strcmp(first.characters, second.characters) > 0;   
}

int main()
{
    freopen("kljuc.in", "r", stdin);
    freopen("kljuc.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
        scanf("%s", matrix[i]);   
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            columns[i].characters[j] = matrix[j][i];   
        }   
        columns[i].characters[n] = 0;
        columns[i].originalIdx = i;
    }    
    sort(columns, columns + m, cmp);
    for (int i = 0; i < m; i++)
    {
        key[columns[i].originalIdx] = i + 1;   
    }
    for (int i = 0; i < m; i++)
    {
        printf("%d ", key[i]);   
    }
    return 0;
}
