/*
sort + printf格式控制
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cctype>
#include <cmath>
using namespace std;
const int MAXN = 104;
const int MAXL = 64;
char files[MAXN][MAXL];
int idx[MAXN];
int n, l;
int c, r;
bool cmp(int a, int b)
{
return strcmp(files[a], files[b]) < 0;
}
void print()
{
printf("------------------------------------------------------------\n");
for(int i=0; i<r; i++) {
for(int j=0; j<c; j++) {
int k = j*r + i;
if(k >= n) break;
if(j<c-1) printf("%-*s", l+2, files[idx[k]]);
else printf("%-*s", l, files[idx[k]]);
}
printf("\n");
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
while(scanf("%d", &n)==1) {
l = 1;
for(int i=0; i<n; i++) {
scanf("%s", files[i]);
int t = strlen(files[i]);
if(t > l) l = t;
idx[i] = i;
}
c = (60-l)/(l+2) + 1;
r = n%c ? n/c + 1 : n/c;
sort(idx, idx+n, cmp);
print();
}
return 0;
}