#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  char ch = getchar();
  bool ne = 0;
  while (!isdigit(ch)) {
    if (ch == '-') ne = 1;
    ch = getchar();
  }
  long long ans = 0;
  while (isdigit(ch)) {
    ans = ans * 10 + ch - 48;
    ch = getchar();
  }
  if (!ne) return ans;
  return -ans;
}
struct Vector {
  long long x, y;
  long long operator*(const Vector &v) const { return x * v.y - y * v.x; }
  Vector operator-(const Vector &v) const { return (Vector){x - v.x, y - v.y}; }
};
Vector a[200005];
long long st[200005], tp;
bool cmp(Vector x, Vector y) {
  if (x.x == y.x) return x.y > y.y;
  return x.x < y.x;
}
signed main() {
  long long n = read();
  for (long long i = 1; i <= n; i++) {
    long long x = read(), y = read();
    a[i] = (Vector){x, y - x * x};
  }
  sort(a + 1, a + n + 1, cmp);
  for (long long i = 1; i <= n; i++) {
    if (a[i].x == a[i - 1].x) continue;
    while (tp >= 2 & ((a[st[tp]] - a[st[tp - 1]]) * (a[i] - a[st[tp]]) >= 0))
      tp--;
    st[++tp] = i;
  }
  cout << tp - 1 << endl;
  return 0;
}
