#include <string>
#include <list>
#include <iostream>

using namespace std;

size_t buflen(const list<string>& l) {
    if (!l.size()) return 0;
    size_t sum = 0;
    for (auto&& s : l) {
        sum += s.length();
    }
    sum += l.size() - 1;
    return sum;
}

void flush(list<string>& buff)
{
    if (buff.size() < 2) {
        while (!buff.empty()) {
            cout << buff.front() << ' ';
            buff.pop_front();
        }
    }
    else {
        size_t sep = buff.size() - 1;
        size_t sum = 0;
        for (auto&& s : buff) {
            sum += s.length();
        }
        sum = 20 - sum;
        for (size_t i = 0; !buff.empty(); buff.pop_front(), ++i) {
            cout << buff.front() << string(sum / sep + ((i < sum % sep)? 1: 0),' ');           
        }
    }
    cout << endl;

}

int main()
{
    list<string> buffer;
    size_t length = 20;
    string cur;
    while (cin >> cur) {
        if (buflen(buffer) + cur.length() + 1 > length)
            flush(buffer);
        buffer.push_back(cur);
    }
    flush(buffer);

    return 0;
}
