#include <bits/stdc++.h>
using namespace std;
int N, K;
int y[305][305];
set<pair<double, int> > heap;
set<pair<double, int> >::iterator it;
double ans[305];
double area() {
  int n, k;
  double x[305], y[305];
  x[0] = 0.0, y[0] = 0.0;
  x[1] = 1.0, y[1] = 0.0;
  n = 2;
  for (it = heap.begin(); it != heap.end(); it++) {
    double a = it->first, b = it->second;
    for (k = n - 1; k >= 0; k--)
      if (a * x[k] + b < y[k]) break;
    if (k == n - 1) continue;
    if (k == -1) {
      x[0] = 0.0, y[0] = b;
      x[1] = 1.0, y[1] = a + b;
      n = 2;
      continue;
    }
    double aa = (y[k + 1] - y[k]) / (x[k + 1] - x[k]);
    double bb = y[k] - aa * x[k];
    x[k + 1] = (b - bb) / (aa - a);
    y[k + 1] = a * x[k + 1] + b;
    x[k + 2] = 1.0, y[k + 2] = a + b;
    n = k + 3;
  }
  double ans = 0.0;
  for (int i = 1; i < n; i++) ans += (y[i] + y[i - 1]) * (x[i] - x[i - 1]) / 2;
  return ans;
}
int main() {
  scanf("%d %d", &N, &K);
  for (int i = 0; i < N; i++)
    for (int j = 0; j <= K; j++) scanf("%d", &y[i][j]);
  for (int i = 1; i <= K; i++) {
    heap.clear();
    double last = 0.0;
    for (int j = 0; j < N; j++) {
      heap.insert(make_pair(y[j][i] - y[j][i - 1], y[j][i - 1]));
      double cur = area();
      ans[j] += cur - last;
      last = cur;
    }
  }
  for (int i = 0; i < N; i++) printf("%.9lf\n", ans[i]);
}
