#include <stdio.h>
#include <string.h>
void troca(int* a,int* b)
{
int c=*a;
*a=*b;
*b=c;
}
int separa(int* v,int* v2,int l,int r)
{
int i=l+1,j=r;
while(i<=j)
{
if(v[i]>v[l]&&v[j]<=v[l])
{
troca(&v[i],&v[j]);
troca(&v2[i],&v2[j]);
}
else if(v[i]>v[l])
j--;
else if(v[j]<=v[l])
i++;
else
{
i++;
j--;
}
}
troca(&v[j],&v[l]);
troca(&v2[j],&v2[l]);
return j;
}
void quicksort(int* v,int* v2,int l,int r)
{
if(l<r)
{
int p=separa(v,v2,l,r);
quicksort(v,v2,l,p-1);
quicksort(v,v2,p+1,r);
}
}
void trocadefato(int* dic,int* indices,int n)
{
int i,aux[n];
for(i=0;i<n;i++)
aux[i]=dic[indices[i]];
for(i=0;i<n;i++)
dic[i]=aux[i];
}
void stuck(char* palavras,int* dic,int n)
{
int aux[n],i,indices[n],l,r;
for(i=0;i<n;i++)
{
aux[i]=(int)palavras[dic[i]];
i++;
indices[i]=i;
}
quicksort(aux,indices,0,n-1);
trocadefato(dic,indices,n);
for(i=1;i<n;i++)
{
l=i-1;
while(aux[i-1]==aux[i])
i++;
r=i-1;
if(l!=r)
stuck(&palavras[1],&dic[l],r-l+1);
}
}
int main(void)
{
int n,k,i,dic[n],id=0;
dic[0]=0;
scanf("%d %d",&n,&k);
char palavras[21*n];
for(i=0;i<n;i++)
{
scanf(" %s",&palavras[dic[id]]);
id++;
dic[id]=dic[id-1]+strlen(&palavras[dic[id-1]])+1;
}
stuck(palavras,dic,n);
printf("%s\n",palavras[k-1]);
return 0;
}