/*
这道题最大的经验就是,不要使用没有定义的变量,也就是不要使用没有初始化的变量
例如本题中在声明完len数组之后一定要调用memset把len数组初始化为0
解题思路很简单,就是对于每行的输入,首先按照空格键进行拆分,记录每一列对应字符串的最大长度len[i]
然后格式化输出,长度不够的要补齐
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<utility>
#include<unordered_set>
#include<unordered_map>
#include<string.h>
#include<fstream>
using namespace std;
vector<string>split(string &s,char ch){
vector<string>ans;
string::size_type now=0,next=0;
while(now<s.size()){
next=s.find(ch,now);
if(next==string::npos)next=s.size();
if(now!=next)ans.push_back(s.substr(now,next-now));
now=next+1;
}
return ans;
}
int main()
{
//ifstream infile("UVa.in");
int len[190];
memset(len,0,sizeof(len));
vector<vector<string>>strs;
string s;
while(getline(cin,s)){
vector<string>tmp=split(s,' ');
for(int i=0;i<tmp.size();++i)len[i]=max(len[i],(int)tmp[i].size());
strs.push_back(tmp);
}
for(auto &p:strs){
for(int i=0;i<p.size();++i){
cout<<p[i];
if(i+1!=p.size()){
for(int k=p[i].size();k<len[i]+1;++k)
cout<<" ";
}
}
cout<<endl;
}
return 0;
}