rt.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k,now,sum,ans,daan;
vector<pair<string,ll>> cnt;
vector<string> all;
string a,tmp;
unordered_map<string,ll> mp;
bool cmpcmp(string x,string y)
{
if(x.size()==y.size())
{
for(int i=0;i<(ll)x.size();i++)
{
if(x[i]==y[i])
{
continue;
}
return x[i]<y[i];
}
}
return x.size()<y.size();
}
bool cmp(pair<string,ll> x,pair<string,ll> y)
{
if(x.second==y.second)
{
return cmpcmp(x.first,y.first);
}
return x.second>y.second;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>k;
while(cin>>tmp)
{
a+=tmp;
}
for(int i=n;i<=m;i++)
{
for(int j=0;j<=(ll)a.size()-i;j++)
{
tmp=a.substr(j,i);
all.push_back(tmp);
mp[tmp]++;
}
}
for(int i=0;i<(ll)all.size();i++)
{
cnt.push_back({all[i],mp[all[i]]});
}
sort(cnt.begin(),cnt.end(),cmp);
for(int i=0;i<(ll)cnt.size();i++)
{
if(cnt[i]==cnt[i-1])
{
continue;
}
if(cnt[i].second!=now)
{
if(ans==k)
{
break;
}
now=cnt[i].second;
if(i!=0)
{
cout<<"\n";
}
cout<<now<<"\n";
ans++;
sum=1;
cout<<cnt[i].first;
}
else
{
if(sum==6)
{
cout<<"\n";
}
cout<<" "<<cnt[i].first;
sum++;
}
}
return 0;
}