#include <iostream>
using namespace std;

int main() {
    string a;
    while (cin >> a ) { 
        int n=a.length();

        char x[n+3][n+3];
        for(int i=1;i<=n+2;i++)
        {
            for(int j=1;j<=n+2;j++)
            {
                x[i][j]=' ';
            }
        }

/*
U的规律:n1 = n3 = max { k| k <= n2 for all 3 <= n2 <= N } with n1 + n2 + n3 - 2 = N.
左右竖排字符个数永远小于等于横排的
横排最少和竖排个数相等,最多比竖排多两个
*/    
    int m;//行数
    int p;//列数
    //横排和竖排个数相等
if((n+2)%3==0)
{    
    m=(n+2)/3;
    p=m;
        for(int i=1;i<=m;i++)
            {
                x[i][1]=a[i-1];
                x[i][p]=a[n-i];
            }
            for(int i=1;i<=p-2;i++)
            {
                x[m][1+i]=a[m-1+i];
            }

            for(int i=1;i<=m;i++)
            {
                for(int j=1;j<=p;j++)
                {
                    cout<<x[i][j];
                }
                cout<<endl;
            }
}

else if((n+1)%3==0)
{
    //横排比竖排多一个
    m=(n+1)/3;
    p=m+1;
        for(int i=1;i<=m;i++)
            {
                x[i][1]=a[i-1];
                x[i][p]=a[n-i];
            }
            for(int i=1;i<=p-2;i++)
            {
                x[m][1+i]=a[m-1+i];
            }

            for(int i=1;i<=m;i++)
            {
                for(int j=1;j<=p;j++)
                {
                    cout<<x[i][j];
                }
                cout<<endl;
            }
}
else 
{
    //横排比竖排多两个
        m=n/3;
        p=m+2;
        for(int i=1;i<=m;i++)
            {
                x[i][1]=a[i-1];
                x[i][p]=a[n-i];
            }
            for(int i=1;i<=p-2;i++)
            {
                x[m][1+i]=a[m-1+i];
            }

            for(int i=1;i<=m;i++)
            {
                for(int j=1;j<=p;j++)
                {
                    cout<<x[i][j];
                }
                cout<<endl;
            }
}     


// //用字符串长度奇偶数来区别要分6类,方法很不好,没找到本质规律,注意题目n1n2n3限制条件
//         if(n%2==0)
//         {
//             if((n+2)%3==0)
//     {            
//             m=(n+2)/3;//是行数也是列数
            
//          for(int i=1;i<=m;i++)
//          {
//             x[i][1]=a[i-1];
//             x[i][m]=a[n-i];
//          }

//          for(int i=1;i<=m-2;i++)
//          {
//             x[m][1+i]=a[m-1+i];
//          }
//         for(int i=1;i<=m;i++)
//             {
//                 for(int j=1;j<=m;j++)
//                 {
//                     cout<<x[i][j];
//                 }
//                 cout<<endl;
//             }
//     }
//             else
//     {
//             m=n/3;//行数
//             int c=m+2;//列数
//             for(int i=1;i<=m;i++)
//             {
//                 x[i][1]=a[i-1];
//                 x[i][c]=a[n-i];
//             }
//             for(int i=1;i<=c-2;i++)
//             {
//                 x[m][i+1]=a[m-1+i];
//             }
//             for(int i=1;i<=m;i++)
//             {
//                 for(int j=1;j<=c;j++)
//                 {
//                     cout<<x[i][j];
//                 }
//                 cout<<endl;
//             }

//     }


//         }
//         else 
//         {
//             if((n+1)%3==0)
//             {           
//             m=(n+1)/3;//是行数
//             int p=m+1;//是列数
//             for(int i=1;i<=m;i++)
//             {
//                 x[i][1]=a[i-1];
//                 x[i][p]=a[n-i];
//             }
//             for(int i=1;i<=p-2;i++)
//             {
//                 x[m][1+i]=a[m-1+i];
//             }

//             for(int i=1;i<=m;i++)
//             {
//                 for(int j=1;j<=p;j++)
//                 {
//                     cout<<x[i][j];
//                 }
//                 cout<<endl;
//             }
//             } 
//             else 
//             {
//                 m=(n+2)/3;
//             for(int i=1;i<=m;i++)
//             {
//                 x[i][1]=a[i-1];
//                 x[i][m]=a[n-i];
//             }
//             for(int i=1;i<=m-2;i++)
//             {
//                 x[m][1+i]=a[m-1+i];
//             }

//             for(int i=1;i<=m;i++)
//             {
//                 for(int j=1;j<=m;j++)
//                 {
//                     cout<<x[i][j];
//                 }
//                 cout<<endl;
//             }

//             }
            

//         }




    }
}
// 64 位输出请用 printf("%lld")