#include <bits/stdc++.h>
using namespace std;
long long n, w;
vector<long long> x[1000100];
multiset<long long> xx[1000100];
bool cmp(vector<long long> a, vector<long long> b) {
  return a.size() > b.size();
}
vector<long long> dis[1000100];
long long arr[1000100];
long long arr2[1000100];
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> w;
  for (int i = 0; i < n; i++) {
    long long k;
    cin >> k;
    for (int j = 0; j < k; j++) {
      long long b;
      cin >> b;
      x[i].push_back(b);
    }
  }
  for (long long i = 0; i < n; i++) {
    stack<pair<long long, long long> > st;
    dis[i].resize(x[i].size());
    for (long long j = x[i].size() - 1; j >= 0; j--) {
      while (st.size() > 0 && st.top().first < x[i][j]) st.pop();
      if (st.size() != 0) {
        long long g = st.top().second;
        long long mmax = x[i].size() - j;
        mmax = w - mmax;
        long long sol = min(mmax, g - 1);
        dis[i][j] = sol;
      } else {
        long long mmax = x[i].size() - j;
        dis[i][j] = w - mmax;
      }
      st.push({x[i][j], j});
    }
  }
  for (int i = 0; i < n; i++) {
    long long last = -1;
    for (int j = 0; j < x[i].size() && last < w - 1; j++) {
      long long dd = dis[i][j];
      if (last + 1 <= dd) {
        if (x[i][j] >= 0) {
          arr[last + 1] += x[i][j];
          arr[dd + 1] -= x[i][j];
          last = dd;
        } else {
          if (x[i].size() * 2 <= w) {
            last = dd;
          } else {
            long long st = w - x[i].size();
            long long en = x[i].size() - 1;
            if (dd < st) {
              last = dd;
            } else if (last + 1 > en) {
              last = dd;
            } else if (last >= st && dd <= en) {
              arr[last + 1] += x[i][j];
              arr[dd + 1] -= x[i][j];
              last = dd;
            } else if (last < st && dd > en) {
              arr[st] += x[i][j];
              arr[en + 1] -= x[i][j];
              last = dd;
            } else if (last < st && dd <= en) {
              arr[st] += x[i][j];
              arr[dd + 1] -= x[i][j];
              last = dd;
            } else if (last >= st && dd > en) {
              arr[last + 1] += x[i][j];
              arr[en + 1] -= x[i][j];
              last = dd;
            }
          }
        }
      }
    }
  }
  long long tot = 0;
  for (int i = 0; i < w; i++) {
    tot += arr[i];
    cout << tot << " ";
  }
  cout << endl;
  return 0;
}
