#include #include #include #include #include using namespace std; const int LINE_WIDTH = 80; class justify { public: justify(int gaps, int fillcount) : gapsize() { gapsize.resize(gaps, 0); if ( gaps > 0 ) { for (int i = 0; i < fillcount; ++i) { ++gapsize.at(i % gaps); } } random_shuffle(gapsize.begin(), gapsize.end()); } int at(int i) const { return gapsize.at(i); } private: vector gapsize; }; int main() { string line, word; while ( getline( cin, line ) ) { istringstream iss(line); vector v; int letters = 0; while ( iss >> word ) { v.push_back(word); letters += word.size(); } if ( v.size() > 0 ) { justify space(v.size() - 1, LINE_WIDTH - letters); for (unsigned int i = 0; i < v.size() - 1; ++i) { cout << v.at(i) << setw(space.at(i)) << ' '; } cout << v.back(); } cout << endl; } return 0; }