#include <bits/stdc++.h>
using namespace std;
struct pt {
  long long x, y;
  pt(long long x, long long y) : x(x), y(y) {}
  pt() {}
  bool operator==(pt p) { return !(abs(x - p.x) && abs(y - p.y)); }
  pt operator-(pt p) { return pt(x - p.x, y - p.y); }
  pt operator*(long long t) { return pt(x * t, y * t); }
  long long operator%(pt p) { return x * p.y - y * p.x; }
  bool operator<(pt p) const {
    return x < p.x || (abs(x - p.x) <= 0 && y < p.y);
  }
  bool left(pt p, pt q) { return (q - p) % (*this - p) >= 0; }
};
vector<pt> chull(vector<pt> p) {
  vector<pt> r;
  for (int i = ((int)(p).size()) - 1; i >= 0; --i) {
    if (i < ((int)(p).size()) - 1 && p[i].x == p[i + 1].x) continue;
    while (((int)(r).size()) > 1 && r.back().left(r[r.size() - 2], p[i]))
      r.pop_back();
    r.push_back(p[i]);
  }
  return r;
}
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  vector<pt> a;
  for (int i = 0; i < n; i++) {
    long long x, y;
    cin >> x >> y;
    a.push_back(pt(x, y - (x * x)));
  }
  sort(a.begin(), a.end());
  vector<pt> ch = chull(a);
  cout << ((int)(ch).size()) - 1 << endl;
}
