#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
using namespace std;
const int maxcol=
60;
const int maxn=
100+
5;
string filename[maxn];
void print(
string x,
int len,
char str) {
cout<<x;
int l=len-x.length();
for(
int i=
1;i<=l;i++) {
cout<<str;
}
}
int main() {
int n;
while(
scanf(
"%d",&n)!=EOF) {
int M=
0;
for(
int i=
0;i<n;i++) {
cin>>filename[i];
M=max(M,(
int)filename[i].length());
}
int col=(maxcol-M)/(M+
2)+
1;
int row=n/col+(n%col==
0?
0:
1);
print(
"",
60,
'-');
printf(
"\n");
sort(filename,filename+n);
for(
int i=
0;i<row;i++) {
for(
int j=
0;j<col;j++) {
int index=j*row+i;
if(index<n) print(filename[index],col==n-
1?M:M+
2,
' ');
}
printf(
"\n");
}
}
return 0;
}