func_code_string: #include <bits/stdc++.h>   using namespace std;   inline long long in() {     int32_t x;     scanf( %d , &x);     return x;   }   inline long long lin() {     long long x;     scanf( %lld , &x);     return x;   }   const long long maxn = 200 + 10;   const long long inf = 1e18 + 1;   long long a[maxn][maxn], mini[maxn], res[maxn], dp[maxn][maxn], id[maxn],       what[maxn];   long long N;   inline void calcDp() {     memset(dp, 0, sizeof dp);     dp[N][0] = 1;     for (long long i = N - 1; i >= 0; i--) {       for (long long j = 0; j <= i; j++) {         dp[i][j] = min(dp[i + 1][j + 1] * bool(what[i] != 1) +                            (j && what[i] != 0 ? dp[i + 1][j - 1] : 0),                        inf);       }     }   }   int32_t main() {     long long n = in(), m = in(), k = lin();     N = n + m - 1;     memset(mini, 63, sizeof mini);     memset(res, -1, sizeof res);     memset(what, -1, sizeof what);     for (long long i = 0; i < n; i++)       for (long long j = 0; j < m; j++) a[i][j] = in();     for (long long i = 0; i < n; i++) {       for (long long j = 0; j < m; j++) mini[i + j] = min(mini[i + j], a[i][j]);     }     iota(id, id + n + m - 1, 0);     sort(id, id + n + m - 1, [](const long long &a, const long long &b) {       return mini[a] < mini[b];     });     for (long long _ = 0; _ < n + m - 1; _++) {       long long i = id[_];       what[i] = 0;       calcDp();       if (dp[0][0] >= k) continue;       k -= dp[0][0];       what[i] = 1;     }     for (long long i = 0; i < n; i++, cout <<   n ) {       for (long long j = 0; j < m; j++) {         cout << (what[i + j] == 0 ?  (  :  ) );       }     }   }   