func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<pair<char, long long int>> vp(4000005);   void ans(vector<long long int> dp, vector<long long int> star, long long int x,            vector<pair<char, long long int>> &vp, long long int n,            long long int &flag) {     if (x <= 1) {       return;     }     long long int starpos = upper_bound((dp).begin(), (dp).end(), x) - dp.begin();     x -= dp[starpos - 1];     if (x == 0) {       for (long long int i = star[starpos - 1]; i < n; i++) {         if (vp[i].first ==  * ) {           vp[i].first =  b ;         }       }     } else {       for (long long int i = star[starpos]; i < n; i++) {         while (i < n && vp[i].first ==  * ) {           vp[i].first =  b ;           i++;         }         break;       }       ans(dp, star, x, vp, n, flag);     }   }   int32_t main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     long long int T = 1;     cin >> T;     while (T--) {       long long int n, k, x;       cin >> n >> k >> x;       string s;       cin >> s;       string b =   ;       for (long long int i = 0; i < k; i++) {         b +=  b ;       }       long long int cnt = 0;       for (long long int i = 0; i < n; i++) {         if (s[i] ==  * ) {           long long int t = cnt;           for (long long int j = cnt; j < t + k; j++) {             vp[cnt] = { * , cnt};             cnt++;           }         } else {           vp[cnt] = { a , cnt};           cnt++;         }       }       s.clear();       s =   ;       for (long long int i = 0; i < cnt; i++) {         s += vp[i].first;       }       vector<long long int> dp;       vector<long long int> star;       star.push_back(-1);       dp.push_back(1);       long long int prev = 1;       long long int curr = 1;       long long int flag1 = 1;       for (long long int i = cnt - 1; i >= 0 && flag1; i--) {         long long int flag = 0;         while (i >= 0 && vp[i].first ==  * ) {           if (x < (curr + 1) * 1ll * prev) {             dp.push_back((curr + 1) * 1ll * prev);             star.push_back(i);             flag1 = 0;             break;           }           dp.push_back((curr + 1) * 1ll * prev);           star.push_back(i);           i--;           curr++;           flag = 1;         }         if (flag) {           prev = curr * prev;           curr = 1;         }       }       long long int flag = 1;       ans(dp, star, x, vp, cnt, flag);       for (long long int i = 0; i < cnt; i++) {         if (vp[i].first ==  * ) continue;         cout << vp[i].first;       }       cout <<   n ;     }     return 0;   }   