#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, top;
pair<long long, long long> A[N], S[N];
int ccw(pair<long long, long long> A, pair<long long, long long> B,
        pair<long long, long long> C) {
  long long u = (A.first - B.first) * (A.second + B.second) +
                (B.first - C.first) * (B.second + C.second) +
                (C.first - A.first) * (C.second + A.second);
  if (u == 0) return 0;
  return (u > 0) ? 1 : -1;
}
int main() {
  ios ::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  if (fopen("main.in", "r"))
    freopen("main.in", "r", stdin);
  else if (fopen("1143F"
                 ".inp",
                 "r"))
    freopen(
        "1143F"
        ".inp",
        "r", stdin),
        freopen(
            "1143F"
            ".out",
            "w", stdout);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    long long first, second;
    cin >> first >> second;
    A[i] = {first, second - first * first};
  }
  sort(A + 1, A + 1 + n);
  for (int l = 1, r, _ = n; l <= _;) {
    r = l + 1;
    if (l == 1) n = 0;
    A[++n] = A[l];
    if (A[l].first != A[r].first)
      ;
    else {
      while (A[l].first == A[r].first) r++;
      A[n].second = A[r - 1].second;
    }
    l = r;
  }
  for (int i = 1; i <= n; i++) {
    while (top >= 2 && ccw(S[top - 1], S[top], A[i]) >= 0) top--;
    S[++top] = A[i];
  }
  cout << top - 1 << '\n';
  return 0;
}
