#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <cstring>
#include <string>
using namespace std;
//ba
//abcdef
char da[108][108];
char jg[108][108];
struct nod{
char c;
int wz;
};
bool cmp(nod a,nod b)
{
if(a.c!=b.c)
{
return a.c<b.c;
}else
{
return a.wz<b.wz;
}
}
vector<nod> ve;
int main()
{
while(1)
{
memset(da,0,sizeof(da));
memset(jg,0,sizeof(jg));
map<int,int> mp;
string a;
cin>>a;
if(a=="THEEND")
{
break;
}
string b;
cin>>b;
int n=a.size();
int m=b.size()/a.size();
//cout<<a.size()<<" "<<b.size()<<" "<<m<<endl;
int k=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
da[j][i]=b[k];
k++;
}
}
/*
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cout<<da[i][j];
}
cout<<endl;
}*/
vector<nod> ve;
for(int i=0;i<a.size();i++)
{
nod t;
t.c=a[i];
t.wz=i;
ve.push_back(t);
}
sort(ve.begin(),ve.end(),cmp);
for(int i=0;i<n;i++)
{
//mp[i]=ve[i].wz;
mp[ve[i].wz]=i;
//cout<<ve[i].wz<<" "<<i<<endl;
}
for(int i=0;i<m;i++)
{
for(int j=0;j<a.size();j++)
{
int t=mp[j];
jg[i][j]=da[i][t];
//cout<<j<<" "<<t<<" "<<da[j][t]<<endl;
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cout<<jg[i][j];
}
//cout<<endl;
}
cout<<endl;
}
return 0;
}