#include <bits/stdc++.h>
using namespace std;
struct point {
  long long x, y;
  point(long long x1 = 0, long long y1 = 0) {
    x = x1;
    y = y1;
  }
};
long long dist(point A, point B) { return abs(A.x - B.x) + abs(A.y - B.y); }
int main() {
  long long n;
  cin >> n;
  vector<point> a(n);
  long long xmin = 1e9;
  long long ymin = 1e9;
  long long xmax = -1e9;
  long long ymax = -1e9;
  for (long long i = 0; i < n; ++i) {
    cin >> a[i].x >> a[i].y;
    xmin = min(xmin, a[i].x);
    xmax = max(xmax, a[i].x);
    ymin = min(ymin, a[i].y);
    ymax = max(ymax, a[i].y);
  }
  vector<point> g;
  for (long long i = 0; i < n; ++i) {
    if ((a[i].x == xmin) || (a[i].x == xmax) || (a[i].y == ymin) ||
        (a[i].y == ymax)) {
      g.push_back(a[i]);
    }
  }
  long long ans3 = 0;
  vector<long long> mask(g.size() - 2, 0);
  for (long long i = 0; i < 2; ++i) {
    mask.push_back(1);
  }
  vector<point> P;
  do {
    P.clear();
    for (long long i = 0; i < mask.size(); ++i) {
      if (mask[i]) {
        P.push_back(g[i]);
      }
    }
    for (int i = 0; i < n; ++i) {
      P.push_back(a[i]);
      ans3 = max(ans3, dist(P[0], P[1]) + dist(P[1], P[2]) + dist(P[2], P[0]));
      P.pop_back();
    }
  } while (next_permutation(mask.begin(), mask.end()));
  cout << ans3 << " ";
  for (long long i = 4; i <= n; ++i) {
    cout << 2 * (xmax - xmin + ymax - ymin) << " ";
  }
  return 0;
}
