func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100;   const int maxm = 100;   const int maxlen = maxn + maxm - 1;   struct point {     int ind, p;     bool operator<(const point& b) const { return p < b.p; }   } cell[maxlen];   char state[maxlen];   int n, m;   long long k;   int p;   long long dp[maxlen][maxlen];   long long Cnt() {     memset(dp, 0, sizeof(dp));     if (state[0] ==  ) ) return 0;     dp[0][1] = 1;     for (int i = 1; i <= (n - 1) + (m - 1); ++i) {       for (int j = 0; j <= (n - 1) + (m - 1); ++j) {         if (state[i] == 0) {           if (j > 0) dp[i][j] = dp[i - 1][j - 1];           dp[i][j] += dp[i - 1][j + 1];         } else if (state[i] ==  ( ) {           if (j > 0) dp[i][j] = dp[i - 1][j - 1];         } else           dp[i][j] = dp[i - 1][j + 1];         if (dp[i][j] > k) dp[i][j] = k + 1;       }     }     return dp[(n - 1) + (m - 1)][0];   }   int main() {     ios_base::sync_with_stdio(false);     cin >> n >> m >> k;     for (int i = 0; i <= (n - 1) + (m - 1); ++i)       cell[i].ind = i, cell[i].p = n * m + 1;     for (int i = 0; i < n; ++i)       for (int j = 0; j < m; ++j) {         cin >> p;         cell[i + j].p = min(cell[i + j].p, p);       }     sort(cell, cell + n + m - 1);     for (int i = 0; i <= (n - 1) + (m - 1); ++i) {       state[cell[i].ind] =  ( ;       long long num = Cnt();       if (num < k) {         k -= num;         state[cell[i].ind] =  ) ;       }     }     for (int i = 0; i < n; ++i) {       for (int j = 0; j < m; ++j) cout << state[i + j];       cout << endl;     }     return 0;   }   