func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 1000011;   const long long INF = (1 << 29) + 123;   const long long MOD = 1000000007;   const long double PI = 4 * atan((long double)1);   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     int n, w;     cin >> n >> w;     int l[n];     int x;     long long ans[w], pf[w + 1];     for (int i = 0; i < w + 1; i++) ans[i] = pf[i] = 0;     for (int i = 0; i < n; i++) {       cin >> l[i];       deque<pair<long long, int>> store;       int window = w - l[i] + 1;       int best = -INF;       for (int j = 0; j < w; j++) {         if (j < l[i]) {           cin >> x;           while (!store.empty() && x >= store.back().first) store.pop_back();           store.push_back(make_pair(x, j));           best = max(best, x);         } else if (j == l[i] && j < window) {           j = window;           if (best >= 0) {             pf[l[i]] += best;             pf[window] -= best;           } else {             if (window - 1 < w - window + 1) {               pf[window - 1] += best;               pf[w - window + 1] -= best;             }           }         }         if (j == w) break;         while (store.front().second <= j - window) store.pop_front();         if (store.front().first > 0 || (j >= window - 1 && j <= w - window)) {           ans[j] += 1LL * store.front().first;         }       }     }     long long total = 0;     for (int i = 0; i < w; i++) {       total += pf[i];       cout << ans[i] + total <<    ;     }     cout << endl;     return 0;   }   