#include <bits/stdc++.h>
using namespace std;
int n, top;
struct node {
  long long x, y;
  bool operator<(const node& _) const {
    if (x != _.x) return x < _.x;
    return y < _.y;
  }
} a[100005], s[100005];
bool cmp(node A, node B, node C) {
  return (C.y - A.y) * (C.x - B.x) >= (C.y - B.y) * (C.x - A.x);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++)
    scanf("%lld%lld", &a[i].x, &a[i].y), a[i].y -= 1ll * a[i].x * a[i].x;
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= n; i++) {
    if (i != n && a[i].x == a[i + 1].x) continue;
    while (top > 1 && cmp(s[top - 1], a[i], s[top])) top--;
    s[++top] = a[i];
  }
  printf("%d\n", top - 1);
  return 0;
}
