#include <bits/stdc++.h>
using namespace std;
long long read() {
  long long x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = x * 10 + c - '0';
    c = getchar();
  }
  return x * f;
}
const int maxn = 100100;
int n, tot;
long long a[maxn], b[maxn];
pair<long long, long long> p[maxn];
int q[maxn];
void work() {
  n = read();
  for (register int i = (int)(1); i <= (int)(n); i++)
    a[i] = read(), b[i] = read();
  for (register int i = (int)(1); i <= (int)(n); i++)
    b[i] = b[i] - a[i] * a[i], p[i] = make_pair(a[i], b[i]);
  sort(p + 1, p + n + 1);
  for (register int i = (int)(1); i <= (int)(n); i++)
    a[i] = p[i].first, b[i] = p[i].second;
  q[++tot] = 1;
  if (n > 1) q[++tot] = 2;
  for (register int i = (int)(3); i <= (int)(n); i++) {
    while (tot >= 2) {
      int x = q[tot - 1], y = q[tot], z = i;
      if ((b[z] - b[y]) * (a[y] - a[x]) >= (b[y] - b[x]) * (a[z] - a[y])) {
        tot--;
      } else
        break;
    }
    q[++tot] = i;
  }
  if (a[q[tot]] == a[q[tot - 1]]) tot--;
  if (a[q[1]] == a[q[2]] && tot > 1) tot--;
  printf("%d\n", tot - 1);
}
int main() { work(); }
