#include <bits/stdc++.h>
using namespace std;
const int N_MAX = 300010;
struct Point {
  int x, y;
};
Point points[N_MAX];
int nPoint;
void outerInit() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  auto fi = new ifstream("test.inp");
  if (*fi) {
    cin.rdbuf(fi->rdbuf());
  }
}
void readData() {
  cin >> nPoint;
  for (int i = 1; i <= nPoint; ++i) {
    cin >> points[i].x >> points[i].y;
  }
}
void solveData() {
  int xMin = INT_MAX, yMin = INT_MAX;
  int xMax = INT_MIN, yMax = INT_MIN;
  for (int i = 1; i <= nPoint; ++i) {
    xMin = min(xMin, points[i].x);
    xMax = max(xMax, points[i].x);
    yMin = min(yMin, points[i].y);
    yMax = max(yMax, points[i].y);
  }
  int res3 = 0;
  for (int i = 1; i <= nPoint; ++i) {
    if (points[i].x != xMin && points[i].y != yMin) {
      res3 = max(res3, 2 * (points[i].x - xMin + points[i].y - yMin));
    }
    if (points[i].x != xMin && points[i].y != yMax) {
      res3 = max(res3, 2 * (points[i].x - xMin + yMax - points[i].y));
    }
    if (points[i].x != xMax && points[i].y != yMin) {
      res3 = max(res3, 2 * (xMax - points[i].x + points[i].y - yMin));
    }
    if (points[i].x != xMax && points[i].y != yMax) {
      res3 = max(res3, 2 * (xMax - points[i].x + yMax - points[i].y));
    }
  }
  cout << res3;
  for (int i = 4; i <= nPoint; ++i) {
    cout << " " << 2 * (xMax - xMin + yMax - yMin);
  }
}
int main() {
  outerInit();
  readData();
  solveData();
}
