#include <bits/stdc++.h>
using namespace std;
long long ans, l, r, mid;
int n, x, y, mar[100002], mir[100002], mal[100002], mil[100002], R, ma, mi;
pair<int, int> a[100001];
long long sq(long long x) { return x * x; }
bool check(long long nw) {
  long long ans = sq(mar[1] - mir[1]);
  R = 1;
  while (R < n && sq(a[R + 1].first - a[1].first) <= nw) R++;
  ans = min(ans, max(sq(mar[R + 1] - mir[R + 1]),
                     max(sq(a[1].first), sq(a[R].first)) +
                         max(sq(mar[R + 1]), sq(mir[R + 1]))));
  for (int i = 2; i <= n; i++) {
    while (R < n && sq(a[R + 1].first - a[i].first) <= nw) R++;
    ma = max(mal[i - 1], mar[R + 1]), mi = min(mil[i - 1], mir[R + 1]);
    ans = min(ans, max(sq(ma - mi), max(sq(a[i].first), sq(a[R].first)) +
                                        max(sq(ma), sq(mi))));
  }
  R = n;
  while (R > 1 && sq(a[n].first - a[R - 1].first) <= nw) R--;
  ans = min(ans, max(sq(mal[R - 1] - mil[R - 1]),
                     max(sq(a[n].first), sq(a[R].first)) +
                         max(sq(mal[R - 1]), sq(mil[R - 1]))));
  for (int i = n - 1; i; i--) {
    while (R > 1 && sq(a[i].first - a[R - 1].first) <= nw) R--;
    ma = max(mar[i + 1], mal[R - 1]), mi = min(mil[R - 1], mir[i + 1]);
    ans = min(ans, max(sq(ma - mi), max(sq(a[i].first), sq(a[R].first)) +
                                        max(sq(ma), sq(mi))));
  }
  R = n + 1;
  for (int i = 1; i <= n; i++)
    if (a[i].first < 0) {
      while (a[R - 1].first > -a[i].first) R--;
      if (R == n + 1 && i == 1) continue;
      ma = max(mal[i - 1], mar[R]);
      mi = min(mil[i - 1], mir[R]);
      ans = min(ans, max(max(sq(a[R - 1].first - a[i].first), sq(ma - mi)),
                         sq(a[i].first) + max(sq(ma), sq(mi))));
    }
  R = 0;
  for (int i = n; i; i--)
    if (a[i].first > 0) {
      while (a[R + 1].first < -a[i].first) R++;
      if (R == 0 && i == n) continue;
      ma = max(mar[i + 1], mal[R]);
      mi = min(mir[i + 1], mil[R]);
      ans = min(ans, max(max(sq(a[i].first - a[R + 1].first), sq(ma - mi)),
                         sq(a[i].first) + max(sq(ma), sq(mi))));
    }
  return ans <= nw;
}
int main() {
  scanf("%d", &n);
  mal[0] = mar[n + 1] = -100000000, mil[0] = mir[n + 1] = 100000000;
  for (int i = 1; i <= n; i++) scanf("%d%d", &a[i].first, &a[i].second);
  sort(a + 1, a + 1 + n), l = 0, r = sq(a[n].first - a[1].first) - 1,
                          ans = r + 1;
  for (int i = n; i; i--)
    mar[i] = max(mar[i + 1], a[i].second),
    mir[i] = min(mir[i + 1], a[i].second);
  for (int i = 1; i <= n; i++)
    mal[i] = max(mal[i - 1], a[i].second),
    mil[i] = min(mil[i - 1], a[i].second);
  while (l <= r) {
    mid = (l + r) >> 1;
    if (check(mid))
      r = mid - 1, ans = mid;
    else
      l = mid + 1;
  }
  printf("%I64d\n", ans);
  return 0;
}
