func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long maxF = (long long)1e9 * 1e9;   const int maxn = 100, maxm = 100, maxlen = maxn + maxm + 1;   int n, m, len, map[maxn + 5][maxm + 5], pri[maxlen], cir[maxlen];   long long dp[maxlen][(maxlen >> 1) + 1], k;   long long cal() {     memset(dp, 0, sizeof(dp));     dp[0][1] = 1;     int up = len >> 1;     for (int p = 1; p < len; p++)       for (int d = 0; d <= up; d++) {         if (cir[p] != 1 && d < up) dp[p][d] += dp[p - 1][d + 1];         if (cir[p] != -1 && d > 0) dp[p][d] += dp[p - 1][d - 1];         if (dp[p][d] >= maxF) dp[p][d] = maxF;       }     return dp[len - 1][0];   }   int main() {     cin >> n >> m >> k;     memset(pri, -1, sizeof(pri));     for (int i = 0, t; i < n; i++)       for (int j = 0; j < m; j++) {         cin >> t;         pri[i + j] = pri[i + j] == -1 ? t : min(pri[i + j], t);       }     len = n + m - 1;     memset(cir, 0, sizeof(cir));     cir[0] = 1;     cir[len - 1] = -1;     for (int t = 1; t < len - 1; t++) {       int pos, minPri = 100000000;       for (int p = 1; p < len - 1; p++)         if (cir[p] == 0 && minPri > pri[p]) pos = p, minPri = pri[p];       cir[pos] = 1;       long long s = cal();       if (k > s) k -= s, cir[pos] = -1;     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) cout << (cir[i + j] == 1 ?  (  :  ) );       cout << endl;     }     return 0;   }   