#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-12;
struct Vector {
  double x, y;
  inline bool operator<(const Vector &p) const {
    if (x != p.x)
      return x < p.x;
    else
      return y < p.y;
  }
} p[200005], q[200005];
inline double slope(Vector a, Vector b) {
  if (a.x == b.x)
    return 1e24;
  else
    return (a.y - b.y) / (a.x - b.x);
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lf%lf", &p[i].x, &p[i].y);
    p[i].y -= p[i].x * p[i].x;
  }
  sort(p + 1, p + n + 1);
  int m = 0;
  for (int i = 1; i <= n; i++)
    if (i == n && p[i].x != p[i - 1].x || p[i].x != p[i + 1].x) p[m++] = p[i];
  int r = 1;
  q[1] = p[0];
  for (int i = 1; i < m; i++) {
    while (r > 1 && slope(q[r], p[i]) + eps > slope(q[r - 1], p[i])) r--;
    q[++r] = p[i];
  }
  printf("%d", r - 1);
  return 0;
}
