#include <bits/stdc++.h>
using namespace std;
vector<pair<long long int, long long int> > points, hull;
bool comp(pair<long long int, long long int> a,
          pair<long long int, long long int> b) {
  if (a.first != b.first) return a.first < b.first;
  return a.second < b.second;
}
int cross(pair<long long int, long long int> a,
          pair<long long int, long long int> b,
          pair<long long int, long long int> c) {
  return a.first * (b.second - c.second) + b.first * (c.second - a.second) +
             c.first * (a.second - b.second) >=
         0;
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    long long int x, y;
    cin >> x >> y;
    y = y - x * x;
    points.push_back({x, y});
  }
  sort(points.begin(), points.end(), comp);
  int sz = 1;
  hull.push_back(points[0]);
  for (int i = 1; i < points.size(); i++) {
    while (sz >= 2 && cross(hull[sz - 2], hull[sz - 1], points[i]))
      hull.pop_back(), sz--;
    hull.push_back(points[i]);
    sz++;
  }
  int ans = 0;
  for (int i = 0; i < sz - 1; i++) {
    if (hull[i].first != hull[i + 1].first) ans++;
  }
  cout << ans << endl;
}
