#include <iostream>
#include <cstring>
using namespace std;
int const WORDMAXSIZE = 21, MAXROWS = 101;
int main() {
int n, x, y, page = 0, newRowStartingPoint = 0, stars = 0, rowSize = 0,spaces = 0,packStars=0,bonus=0;
char words[MAXROWS][WORDMAXSIZE];
cin >> n >> x >> y;
for (int i = 0; i < n; ++i)
cin >> words[i];
for (int i = 0; i < n; ++i) {
size_t const wordSize = strlen(words[i]);
if (rowSize + wordSize <= y) {
rowSize += wordSize + 1;
++stars;
}
else {
spaces = stars - 1;
stars += y - rowSize;
if (spaces != 0) {
packStars = stars / spaces;
bonus = stars % spaces;
}
for (int j = newRowStartingPoint; j < i; ++j) {
cout << words[j];
if (j < i - 1) {
int stopBonus = 0;
if (j < bonus)
stopBonus = 1;
for (int k = 0; k < packStars + stopBonus; ++k)
cout << "*";
}
}
cout << "\n";
newRowStartingPoint = i;
rowSize = wordSize + 1;
stars = 1;
spaces = 0;
packStars = 0;
bonus = 0;
++page;
if (page == x) {
page = 0;
cout << "\n";
}
}
}
spaces = stars - 1;
stars += y - rowSize;
if (spaces != 0) {
packStars = stars / spaces;
bonus = stars % spaces;
}
for (int j = newRowStartingPoint; j < n; ++j) {
cout << words[j];
if (j < n - 1) {
int stopBonus = 0;
if (j < bonus)
stopBonus = 1;
for (int k = 0; k < packStars + stopBonus; ++k)
cout << "*";
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBjb25zdCBXT1JETUFYU0laRSA9IDIxLCBNQVhST1dTID0gMTAxOwoKaW50IG1haW4oKSB7CglpbnQgbiwgeCwgeSwgcGFnZSA9IDAsIG5ld1Jvd1N0YXJ0aW5nUG9pbnQgPSAwLCBzdGFycyA9IDAsIHJvd1NpemUgPSAwLHNwYWNlcyA9IDAscGFja1N0YXJzPTAsYm9udXM9MDsKCWNoYXIgd29yZHNbTUFYUk9XU11bV09SRE1BWFNJWkVdOwoKCWNpbiA+PiBuID4+IHggPj4geTsKCglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKCQljaW4gPj4gd29yZHNbaV07CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQlzaXplX3QgY29uc3Qgd29yZFNpemUgPSBzdHJsZW4od29yZHNbaV0pOwoKCQlpZiAocm93U2l6ZSArIHdvcmRTaXplIDw9IHkpIHsKCQkJcm93U2l6ZSArPSB3b3JkU2l6ZSArIDE7CgkJCSsrc3RhcnM7CgkJfQoJCWVsc2UgewoJCSAgICBzcGFjZXMgPSBzdGFycyAtIDE7CgkJCXN0YXJzICs9IHkgLSByb3dTaXplOwoKCQkJaWYgKHNwYWNlcyAhPSAwKSB7CgkJCQlwYWNrU3RhcnMgPSBzdGFycyAvIHNwYWNlczsKCQkJCWJvbnVzID0gc3RhcnMgJSBzcGFjZXM7CgkJCX0KCgkJCWZvciAoaW50IGogPSBuZXdSb3dTdGFydGluZ1BvaW50OyBqIDwgaTsgKytqKSB7CgkJCQljb3V0IDw8IHdvcmRzW2pdOwoKCQkJCWlmIChqIDwgaSAtIDEpIHsKCQkJCQlpbnQgc3RvcEJvbnVzID0gMDsKCQkJCQlpZiAoaiA8IGJvbnVzKQoJCQkJCQlzdG9wQm9udXMgPSAxOwoKCQkJCQlmb3IgKGludCBrID0gMDsgayA8IHBhY2tTdGFycyArIHN0b3BCb251czsgKytrKQoJCQkJCQljb3V0IDw8ICIqIjsKCQkJCX0KCQkJfQoKCQkJY291dCA8PCAiXG4iOwoJCQluZXdSb3dTdGFydGluZ1BvaW50ID0gaTsKCQkJcm93U2l6ZSA9IHdvcmRTaXplICsgMTsKCQkJc3RhcnMgPSAxOwoJCQlzcGFjZXMgPSAwOwoJCQlwYWNrU3RhcnMgPSAwOwoJCQlib251cyA9IDA7CgoJCQkrK3BhZ2U7CgkJCWlmIChwYWdlID09IHgpIHsKCQkJCXBhZ2UgPSAwOwoJCQkJY291dCA8PCAiXG4iOwoJCQl9CgkJfQoJfQoKCXNwYWNlcyA9IHN0YXJzIC0gMTsKCXN0YXJzICs9IHkgLSByb3dTaXplOwoKCWlmIChzcGFjZXMgIT0gMCkgewoJCXBhY2tTdGFycyA9IHN0YXJzIC8gc3BhY2VzOwoJCWJvbnVzID0gc3RhcnMgJSBzcGFjZXM7Cgl9CgoJZm9yIChpbnQgaiA9IG5ld1Jvd1N0YXJ0aW5nUG9pbnQ7IGogPCBuOyArK2opIHsKCQljb3V0IDw8IHdvcmRzW2pdOwoKCQlpZiAoaiA8IG4gLSAxKSB7CgkJCWludCBzdG9wQm9udXMgPSAwOwoJCQlpZiAoaiA8IGJvbnVzKQoJCQkJc3RvcEJvbnVzID0gMTsKCgkJCWZvciAoaW50IGsgPSAwOyBrIDwgcGFja1N0YXJzICsgc3RvcEJvbnVzOyArK2spCgkJCQljb3V0IDw8ICIqIjsKCQl9Cgl9CgoJcmV0dXJuIDA7Cn0=