#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,ans[50010];
struct node
{
int w;
string s,sy;
}a[50010];
bool cmp(node aa,node bb)
{
return aa.s>bb.s;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i].sy;
a[i].w=i;
for(int j=0;j<a[i].sy.length();j++)
if(a[i].sy[j]<='Z') a[i].s[j]=a[i].sy[j]+'a'-'A';
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++)
{
cin>>x>>y;
for(int j=1;j<=n;j++)
{
if(a[j].w>=x&&a[j].w<=y)
{
ans[i]=j;
break;
}
}
}
for(int i=1;i<=n;i++)
cout<<a[ans[i]].sy<<'\n';
return 0;
}