#include <bits/stdc++.h>
using namespace std;
int s[200010], cnt, n, ans;
struct node {
  long long x, y;
  bool operator<(const node& tmp) const {
    return x != tmp.x ? x < tmp.x : y > tmp.y;
  }
} p[2000010];
bool to_left(node& a, node& b, node& c) {
  if ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x) < 0) return false;
  return true;
}
int main() {
  int i;
  scanf("%d", &n);
  if (n == 1) {
    printf("0\n");
    return 0;
  }
  for (i = 1; i <= n; i++) {
    scanf("%I64d%I64d", &p[i].x, &p[i].y);
    p[i].y -= p[i].x * p[i].x;
  }
  sort(p + 1, p + n + 1);
  s[++cnt] = 1;
  s[++cnt] = 2;
  for (i = 3; i <= n; i++) {
    while (cnt > 1 && to_left(p[s[cnt - 1]], p[s[cnt]], p[i])) {
      cnt--;
    }
    s[++cnt] = i;
  }
  for (i = 1; i < cnt; i++) {
    if (p[s[i]].x != p[s[i + 1]].x) ans++;
  }
  printf("%d\n", ans);
  return 0;
}
