#include <bits/stdc++.h>
using namespace std;
int n, m;
struct pos {
  long long x, y;
  bool operator<(const pos &p) const {
    if (x != p.x) return x < p.x;
    return y < p.y;
  }
} A[200005], stk[200005];
bool check(pos a, pos b, pos c) {
  return (c.y - a.y) * (b.x - c.x) <= (b.y - c.y) * (c.x - a.x);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    long long x, y;
    scanf("%lld%lld", &x, &y);
    y -= x * x, A[i] = (pos){x, y};
  }
  sort(A + 1, A + n + 1);
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    if (i != n && A[i].x == A[i + 1].x) continue;
    while (cnt > 1 && check(stk[cnt - 1], A[i], stk[cnt])) cnt--;
    stk[++cnt] = A[i];
  }
  printf("%d\n", cnt - 1);
  return 0;
}
