#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, top;
struct poi {
  long long x, y;
  poi(long long x = 0, long long y = 0) : x(x), y(y) {}
  friend poi operator-(poi A, poi B) { return poi(A.x - B.x, A.y - B.y); }
  friend long long operator^(poi A, poi B) { return A.x * B.y - A.y * B.x; }
  friend bool operator<(poi x, poi y) {
    return x.x != y.x ? x.x < y.x : x.y < y.y;
  }
} a[N], stk[N];
int main() {
  scanf("%d", &n);
  for (int i = (1); i <= (n); i++) {
    scanf("%lld%lld", &a[i].x, &a[i].y);
    a[i].y -= a[i].x * a[i].x;
  }
  sort(a + 1, a + 1 + n);
  for (int i = (1); i <= (n); i++) {
    while (top >= 2 && ((a[i] - stk[top - 1]) ^ (stk[top] - stk[top - 1])) <= 0)
      top--;
    while (top && a[i].x == stk[top].x) top--;
    stk[++top] = a[i];
  }
  printf("%d\n", top - 1);
  return 0;
}
