#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
pair<double, double> operator-(const pair<double, double>& A,
                               const pair<double, double>& B) {
  return pair<double, double>(A.first - B.first, A.second - B.second);
}
double cross(pair<double, double> k1, pair<double, double> k2) {
  return k1.first * k2.second - k1.second * k2.first;
}
int sign(double k) {
  if (k > -eps && k < eps) return 0;
  return k > eps ? 1 : -1;
}
bool cmp(pair<double, double> a, pair<double, double> b) {
  int i1 = sign(a.first - b.first);
  if (i1) return i1 < 0;
  return sign(a.second - b.second) < 0;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  int n;
  cin >> n;
  vector<pair<double, double> > A(n), ans(n);
  for (int i = 0; i < n; i++) {
    cin >> A[i].first >> A[i].second;
    A[i].second -= A[i].first * A[i].first;
  }
  sort(A.begin(), A.end());
  int now = -1;
  for (int i = n - 1; ~i; i--) {
    while (now > 0 &&
           sign(cross(ans[now] - ans[now - 1], A[i] - ans[now - 1])) < 1)
      now--;
    ans[++now] = A[i];
  }
  int res = 0;
  for (int i = 1; i <= now; i++)
    if (sign(ans[i].first - ans[i - 1].first)) res++;
  cout << res << endl;
  return 0;
}
