#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> operator-(const pair<long long, long long> &p1,
                                     const pair<long long, long long> &p2) {
  return {p1.first - p2.first, p1.second - p2.second};
}
int main() {
  int n;
  scanf("%d", &n);
  map<long long, long long> m;
  for (int i = 0; i < n; i++) {
    long long first = i, second = 0;
    scanf("%lld %lld", &first, &second);
    if (m.find(first) != m.end())
      m[first] = max(m[first], second);
    else {
      m[first] = second;
    }
  }
  vector<pair<long long, long long> > v;
  for (auto it : m) v.push_back(it);
  int last = 0;
  int ans = 0;
  vector<pair<long long, long long> > stk;
  stk.push_back(v[0]);
  if (v.size() > 1) stk.push_back(v[1]);
  for (int i = 2; i < v.size(); i++) {
    while (stk.size() > 1) {
      int len = stk.size();
      pair<long long, long long> p1 = stk[len - 1];
      pair<long long, long long> p2 = stk[len - 2];
      pair<long long, long long> p3 = v[i];
      p2 = p2 - p1;
      p3 = p3 - p1;
      double b = (double)(p2.second - p2.first * p2.first) / (p2.first);
      double myy = p3.first * p3.first + b * p3.first;
      if (myy > p3.second + 1e-6) {
        break;
      }
      stk.pop_back();
    }
    stk.push_back(v[i]);
    ;
  }
  printf("%d\n", stk.size() - 1);
}
