#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <string>
#include <sstream>
#include <vector>
#include <map>
using namespace std;
int main()
{
//freopen("c:\\h.txt","w",stdout);
vector<string> s;
int line=0,wide[1000]={};
string::size_type a[1005]={};
string t;
while(getline(cin,t))
{
string m;
stringstream ss(t);
int j=0;
while(ss>>m)
{
a[j]=max(a[j],m.length()); //找到每列最长的单词
j++;
wide[line]++; //记录每行有几个单词
s.push_back(m); //把每个单词放到vector里
}
line++;
}
for(string::size_type m=0,line=0,count=0;m!=s.size();m++)
{
cout<<s[m];
for(string::size_type i=0;i<a[count]-s[m].length()+1&&count!=wide[line]-1;i++)
cout<<' '; //每次补 当前列最长的单词长度-当前单词长度+1 个空格,最后一个单词则不补空格
count++;
if(count==wide[line])
{
cout<<endl;
count=0;
line++;
}
}
return 0;
}