#include <bits/stdc++.h>
const int N = 300010;
int n;
int x[N], y[N];
int xmax = INT_MIN, xmax_id = -1;
int ymax = INT_MIN, ymax_id = -1;
int xmin = INT_MAX, xmin_id = -1;
int ymin = INT_MAX, ymin_id = -1;
int max3(int x, int y, int z) {
  if (x > y) {
    return x > z ? x : z;
  } else {
    return y > z ? y : z;
  }
}
int min3(int x, int y, int z) {
  if (x > y) {
    return y < z ? y : z;
  } else {
    return x < z ? x : z;
  }
}
int calcu(int a, int b, int c) {
  int xMAX = max3(x[a], x[b], x[c]);
  int xMIN = min3(x[a], x[b], x[c]);
  int yMAX = max3(y[a], y[b], y[c]);
  int yMIN = min3(y[a], y[b], y[c]);
  return 2 * (xMAX + yMAX - xMIN - yMIN);
}
int main() {
  std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
  std::cin >> n;
  for (int i = 0; i < n; ++i) {
    std::cin >> x[i] >> y[i];
    if (x[i] > xmax) {
      xmax = x[i];
      xmax_id = i;
    }
    if (x[i] < xmin) {
      xmin = x[i];
      xmin_id = i;
    }
    if (y[i] > ymax) {
      ymax = y[i];
      ymax_id = i;
    }
    if (y[i] < ymin) {
      ymin = y[i];
      ymin_id = i;
    }
  }
  std::vector<int> ve;
  ve.push_back(xmax_id);
  ve.push_back(xmin_id);
  ve.push_back(ymax_id);
  ve.push_back(ymin_id);
  std::sort(ve.begin(), ve.end());
  int m = std::unique(ve.begin(), ve.end()) - ve.begin();
  int ans = 2 * (ymax + xmax - ymin - xmin);
  if (m <= 3) {
    for (int i = 3; i <= n; ++i) {
      if (i != 3) std::cout << " ";
      std::cout << ans;
    }
  } else {
    int best = INT_MIN;
    for (int i = 0; i < 4; ++i) {
      for (int j = 0; j < n; ++j) {
        best = std::max(best, calcu(ve[i], ve[(i + 1) % 4], j));
      }
    }
    for (int j = 0; j < n; ++j) {
      best = std::max(best, calcu(ve[0], ve[2], j));
    }
    for (int j = 0; j < n; ++j) {
      best = std::max(best, calcu(ve[1], ve[3], j));
    }
    std::cout << best;
    for (int i = 4; i <= n; ++i) {
      std::cout << " " << ans;
    }
  }
  std::cout << std::endl;
  return 0;
}
