#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 1e6 + 69, MOD = 1e9 + 7;
long long n;
pair<long long, long long> arr[MAXN];
stack<pair<long long, long long>> stk;
bool check(pair<long long, long long> v, pair<long long, long long> u) {
  if (v.first * u.second - v.second * u.first < 0)
    return true;
  else
    return false;
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (long long i = 1; i <= n; i++)
    cin >> arr[i].first >> arr[i].second,
        arr[i].second = arr[i].second - arr[i].first * arr[i].first;
  sort(arr + 1, arr + n + 1), arr[n + 1].first = arr[n + 1].second = 1e18;
  for (long long i = 1; i <= n; i++)
    if (arr[i].first != arr[i + 1].first) {
      pair<long long, long long> v, u;
      while (stk.size() > 1) {
        v = stk.top(), stk.pop(), u = stk.top();
        if (check({arr[i].first - v.first, arr[i].second - v.second},
                  {u.first - v.first, u.second - v.second})) {
          stk.push(v);
          break;
        }
      }
      stk.push({arr[i].first, arr[i].second});
    }
  cout << stk.size() - 1 << "\n";
}
