int main() {
string key;
while (getline(cin, key) && key != "THEEND") {
vector<pair<char, int> > p;
for (int i = 0; i < key.size(); ++i) {
p.push_back(make_pair(key[i], i));
}
stable_sort(p.begin(), p.end());
string body;
getline(cin, body);
const int N = key.size();
const int M = body.size() / N;
vector<vector<char> > table(M, vector<char>(N));
int index = 0;
for (int n = 0; n < N; ++n) {
for (int m = 0; m < M; ++m) {
const int pp = p[n].second;
table[m][pp] = body[index++];
}
}
for (vector<vector<char> >::iterator it = table.begin(), itEnd = table.end(); it != itEnd; ++it) {
cout << string(it->begin(), it->end());
}
cout << endl;
}
}