#include <bits/stdc++.h>
using namespace std;
int n, len;
int ori_h[301][301];
int h[301][301];
double H[1000001];
int N = 2000;
double ans[301];
void solve(int _N) {
  N = _N;
  double w = double(len) / N;
  double init = double(len) / N * (0.5);
  double add = double(len) / N;
  for (int i = 1; i <= n; i++) {
    double ret = 0;
    for (int j = 0; j <= len; j++) h[i][j] = ori_h[i][j];
    double x = init;
    int t = 0;
    for (int j = 0; j < N; j++) {
      while (t + 1 <= x) t++;
      double curH = h[i][t] + (h[i][t + 1] - h[i][t]) * (x - t);
      ret += max(0.0, curH - H[j]);
      H[j] = max(H[j], curH);
      x += add;
    }
    ans[i] = ret * w;
  }
}
int MAIN() {
  memset(ans, 0, sizeof(ans));
  memset(H, 0, sizeof(H));
  cin >> n >> len;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= len; j++) cin >> ori_h[i][j];
  }
  int start = clock();
  int cnts = 1;
  solve(309877);
  for (int i = 1; i <= n; i++) cout << ans[i] / cnts << endl;
  return 0;
}
int main() {
  ios ::sync_with_stdio(false);
  cout << fixed << setprecision(16);
  return MAIN();
}
