func_code_string: #include <bits/stdc++.h>   using namespace std;   void solve() {     int n, m, k;     cin >> n >> m >> k;     vector<int> dp1(m, 0);     vector<int> pref_max(m, 0);     vector<int> suf_max(m, 0);     vector<vector<int> > a(n);     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         int x;         cin >> x;         a[i].push_back(x);       }     }     for (int i = 0; i < n; i++) {       vector<vector<int> > sa1(m);       vector<vector<int> > sa2(m);       for (int j = 0; j < m; j++) {         sa1[j].push_back(0);         sa2[j].push_back(0);         for (int ii = 0; ii < k; ii++) {           if (j + ii < m) {             sa1[j].push_back(sa1[j][sa1[j].size() - 1] + a[i][j + ii]);             if (i < n - 1) {               sa2[j].push_back(sa2[j][sa2[j].size() - 1] + a[i + 1][j + ii]);             } else {               sa2[j].push_back(0);             }           } else {             sa1[j].push_back(sa1[j][sa1[j].size() - 1]);             sa2[j].push_back(sa2[j][sa2[j].size() - 1]);           }         }       }       vector<int> dp2(m, -1e9);       for (int j = 0; j < m; j++) {         if (j - k >= 0) {           dp2[j] = pref_max[j - k];         }         if (j + k < m) {           dp2[j] = max(dp2[j], suf_max[j + k]);         }         for (int ii = max(0, j - k + 1); ii < min(m, j + k); ii++) {           if (ii < j) {             dp2[j] = max(dp2[j], dp1[ii] - sa1[j][k - (j - ii)]);           } else {             dp2[j] = max(dp2[j], dp1[ii] - sa1[ii][k - (ii - j)]);           }         }         if (i == 0) {           dp2[j] = sa1[j][k] + sa2[j][k];         } else {           dp2[j] += sa1[j][k] + sa2[j][k];         }       }       dp1 = dp2;       pref_max[0] = dp1[0];       for (int j = 1; j < m; j++) {         pref_max[j] = max(pref_max[j - 1], dp1[j]);       }       suf_max[m - 1] = dp1[m - 1];       for (int j = m - 2; j >= 0; j--) {         suf_max[j] = max(suf_max[j + 1], dp1[j]);       }     }     cout << pref_max[m - 1];   }   int main() {     ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);     solve();     cout << endl;     return 0;   }   