#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序
int main()
{
int n;
while(cin>>n)
{
vector<string> ve;
int mx=0;
for(int i=0;i<n;i++)
{
string s;
cin>>s;
ve.push_back(s);
mx=max(mx,(int)s.size());
}
sort(ve.begin(),ve.end());
int lie=(60-mx)/(mx+2)+1;//列数
int hang=n/lie+(int)(n%lie!=0);//行数
for(int i=0;i<60;i++)
{
cout<<"-";
}
cout<<endl;
int k=0;
for(int i=0;i<hang;i++)
{
for(int j=0;j<lie;j++)
{
if(j*(hang)+i<n)
{
cout<<ve[j*(hang)+i];
for(int l=ve[j*(hang)+i].size();l<mx;l++)
{
cout<<" ";
}
if(j!=(lie-1))
{
cout<<" ";
}
k++;
}else
{
break;
}
}
cout<<endl;
}
}
return 0;
}