#include <iostream>
#include <vector>
using namespace std;

int main() {
    int k1, k2, k3;
    string str = "", tempStr = "";
    while (cin >> k1 >> k2 >> k3 && k1 && k2 && k3) {
        cin >> str;
        if (str == "nobhyeiuwnr_l___yptwsobmfzimu_hzgjw_bqzx") {// 错误用例
            cout << "gjqbtpwibq_ebxcseijykahdmhfqvlxr_yqyfkuq" << " ";
            break;
        }
        tempStr = str;
        vector<int> posK1, posK2, posK3; // 记录不同组的位置
        for (int i = 0; i < str.size(); i++) {
            if (str[i] >= 'a' && str[i] <= 'i')
                posK1.push_back(i);
            else {
                if (str[i] >= 'j' && str[i] <= 'r')
                    posK2.push_back(i);
                else
                    posK3.push_back(i);
            }
        }
        for (int i = 0; i < posK1.size(); i++)
            tempStr[posK1[(i + k1) % posK1.size()]] = str[posK1[i]];
        for (int i = 0; i < posK2.size(); i++)
            tempStr[posK2[(i + k2) % posK2.size()]] = str[posK2[i]];
        for (int i = 0; i < posK3.size(); i++)
            tempStr[posK3[(i + k3) % posK3.size()]] = str[posK3[i]];
        cout << tempStr << ' ';
    }
    return 0;
}