#include <bits/stdc++.h>
using namespace std;
const int N = (int)(1e6 + 5);
const int LOG = (int)(20);
const int inf = (int)(1e9);
long long int maxx = -inf, minx = inf, maxy = -inf, miny = inf, n, ans3, ans,
              dp[N][4];
long long int c[6][2] = {{1, 2}, {2, 3}, {3, 1}, {1, 2}, {2, 3}, {3, 1}},
              ml[4][2];
pair<long long int, long long int> p[N];
void upd(int x) {
  memset(ml, 0, sizeof ml);
  for (int i = 0; i < 3; i++) {
    if ((x & (1 << i)) != 0) {
      ml[c[i][0]][0] -= 2;
      ml[c[i][1]][0] += 2;
    }
  }
  for (int i = 3; i < 6; i++) {
    if ((x & (1 << i)) != 0) {
      ml[c[i][0]][1] -= 2;
      ml[c[i][1]][1] += 2;
    }
  }
}
long long int f(long long int x, long long int tk) {
  if (tk == 3) return 0;
  if (x >= n + 1) return -inf;
  if (dp[x][tk] != -1) return dp[x][tk];
  return dp[x][tk] =
             max(f(x + 1, tk), f(x + 1, tk + 1) + ml[tk + 1][0] * p[x].first +
                                   ml[tk + 1][1] * p[x].second);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int a, b;
    cin >> p[i].first >> p[i].second;
    maxx = max(maxx, p[i].first);
    maxy = max(maxy, p[i].second);
    minx = min(minx, p[i].first);
    miny = min(miny, p[i].second);
  }
  ans = 2 * (maxx - minx + maxy - miny);
  for (int i = 0; i < (1 << 6); i++) {
    memset(dp, -1, sizeof dp);
    upd(i);
    ans3 = max(ans3, f(1, 0));
  }
  cout << ans3 << " ";
  for (int i = 4; i <= n; i++) {
    cout << ans << " ";
  }
}
