#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
string str[31][105];
string compare[105];
int rowCounter[31];
char tmp[105];
int totalCol, total;
void ssort()
{
int i,j,k;
for (i=0;i<totalCol;i++)
{
for (j=0;j<rowCounter[i]-1;j++)
{
string xxx=str[i][j];
int rec=-1;
for (k=j+1;k<rowCounter[i];k++)
if (str[i][k]<xxx)
{
xxx=str[i][k];
rec=k;
}
if (rec!=-1)
{
string ttt=str[i][j];
str[i][j]=str[i][rec];
str[i][rec]=ttt;
}
}
}
}
string findstr(int x)
{
int i;
int tmpTotal=total;
string bbb;
for (i=0;i<totalCol;i++)
{
int xx=tmpTotal/rowCounter[i];
bbb+=str[i][x/xx]+" ";
x%=xx;
tmpTotal=xx;
}
return bbb;
}
bool cmp(const string &a,const string &b)
{
return a<b;
}
int main()
{
int n,k;
scanf("%d%d",&n,&k);
int i;
int col;
map<string, bool> M[31];
for (i=0;i<n;i++)
{
col=0;
scanf("%s%s%s%s",tmp,tmp,tmp,tmp);
while (1)
{
string t;
cin >> t;
if (t=="cow.")
break;
else if (!M[col][t])
{
M[col][t]=true;
str[col][rowCounter[col]]=t;
rowCounter[col]++;
}
compare[i]+=t+" ";
col++;
}
}
sort(compare,compare+n,cmp);
totalCol=col;
total=1;
for (i=0;i<totalCol;i++)
{
ssort();
total*=rowCounter[i];
}
string now=findstr(k-1);
i=0;
while (i<n && compare[i]<=now)
{
k++;
i++;
now=findstr(k-1);
}
now.resize(now.length()-1);
cout << now << endl;
}