#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
struct node {
  long long x, y;
  bool operator<(const node &_) const { return x != _.x ? x < _.x : y < _.y; }
} P[N], Q[N];
int n, tot;
bool check(node a, node b, node c) {
  return (b.y - a.y) * (c.x - b.x) <= (c.y - b.y) * (b.x - a.x);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    cin >> P[i].x >> P[i].y;
    P[i].y -= P[i].x * P[i].x;
  }
  sort(P + 1, P + n + 1);
  for (int i = 1; i <= n; i++) {
    if (i == n || P[i].x != P[i + 1].x) {
      while (tot > 1 && check(Q[tot - 1], Q[tot], P[i])) tot--;
      Q[++tot] = P[i];
    }
  }
  printf("%d\n", tot - 1);
  return 0;
}
