#include
using namespace std;
// 大家用笔和纸画一下就知道了
// 因为 x <= y; 且 2x + y = N - 2
// n1 = n3 = max { k| k <= n2 for all 3 <= n2 <= N }
// 因为x<=y 不妨取x的最大值 即 x=y 得下结果
// int n3 = (N + 2) / 3, n1 = n3, n2 = N - (n1 + n3);
// 用笔纸画一下就知道 因为这里的 / 是向下取整 所以n1 = n3 ,
// (接上)所以得到的n1 n3 是包含了 两个竖边与底边重叠多算的那两个字符
// 故而 n2 = N - 2*n1 n2 这里的n2 就是不包含重叠的 字符数量
int main() {
char buf[80];
while(cin>>buf){
string input=buf;
int N=input.length();
int n3=(N+2)/3,n1=n3,n2=N-n1-n3;
int L=n1,M=n2+2;
char matrix[L][M];
for(int i=0;i<L;++i)
for(int j=0;j<M;++j)
matrix[i][j]=’ ';
int index=0;
for(int i=0;i<L;++i){
matrix[i][0]=input[index++];
}
for(int i=1;i<=n2;++i)
matrix[L-1][i]=input[index++];
for(int j=L-1;j>=0;–j)
matrix[j][M-1]=input[index++];
for(int i=0;i<L;++i){
for(int j=0;j<M;++j)
cout<<matrix[i][j];
cout<<'\n';
}
}
return 0;
}