#include <bits/stdc++.h>
using namespace std;
template <class A, class B>
A cvt(B x) {
  stringstream ss;
  ss << x;
  A y;
  ss >> y;
  return y;
}
int n, k;
vector<pair<double, double> > line[300];
double s[300];
void append(vector<pair<double, double> > &a, pair<double, double> xy) {
  if (xy.first - a[a.size() - 1].first > 1e-9) {
    a.push_back(xy);
  }
}
vector<pair<double, double> > merge(vector<pair<double, double> > &a,
                                    vector<pair<double, double> > &b) {
  vector<pair<double, double> > c = {{0.0, max(a[0].second, b[0].second)}};
  int i = 0, j = 0;
  while (i + 1 < a.size() && j + 1 < b.size()) {
    double ka = (a[i + 1].second - a[i].second) / (a[i + 1].first - a[i].first);
    double kb = (b[j + 1].second - b[j].second) / (b[j + 1].first - b[j].first);
    if (abs(ka - kb) > 1e-9) {
      double g =
          ((a[i].second - b[j].second) + (b[j].first - a[i].first) * ka) /
          (kb - ka);
      double xab = b[j].first + g;
      double yab = b[j].second + g * kb;
      if (max(a[i].first, b[j].first) + 1e-9 < xab &&
          xab < min(a[i + 1].first, b[j + 1].first) - 1e-9) {
        append(c, {xab, yab});
      }
    }
    double x = min(a[i + 1].first, b[j + 1].first);
    double ya = a[i].second + (x - a[i].first) * ka;
    double yb = b[j].second + (x - b[j].first) * kb;
    append(c, {x, max(ya, yb)});
    if (a[i + 1].first < b[j + 1].first)
      i++;
    else
      j++;
  }
  return c;
}
double area(vector<pair<double, double> > &p) {
  double a = 0;
  for (int i = 0; i < (int)(p.size() - 1); i++) {
    double dx = (p[i + 1].first - p[i].first);
    double y = (p[i + 1].second + p[i].second) / 2;
    a += dx * y;
  }
  return a;
}
int main() {
  scanf("%d %d", &n, &k);
  for (int i = 0; i < (int)(n); i++) {
    for (int j = 0; j < (int)(k + 1); j++) {
      int y;
      scanf("%d", &y);
      line[i].push_back({j, y});
    }
  }
  vector<pair<double, double> > poly = {{0, 0}, {k, 0}};
  double a = 0;
  for (int i = 0; i < (int)(n); i++) {
    poly = merge(poly, line[i]);
    double ai = area(poly);
    printf("%.9f\n", ai - a);
    a = ai;
  }
  return 0;
}
