#include <bits/stdc++.h>
using namespace std;
struct st {
  long long k, b;
  bool neg;
  st() {}
  st(int _k, int _b) {
    k = _k;
    b = _b;
    neg = (k * -1000000001ll + b >= 0);
  }
};
st v[100001];
bool comp(const st &r, const st &t) {
  if ((r.k > 0) ^ (t.k > 0))
    return (t.k * r.b < t.b * r.k);
  else
    return (t.k * r.b > t.b * r.k);
}
int main() {
  long long n, B, K, cnt = 0, C = 0;
  long long k = 0, b = 0;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> K >> B;
    if (K != 0) {
      st tmp(K, B);
      v[C++] = tmp;
      if (tmp.neg) {
        k += K;
        b += B;
      }
    }
  }
  sort(v, v + C, comp);
  for (int i = 0; i < C; i++) {
    long long nk = k, nb = b;
    int j = i;
    while (j < C && v[i].b * v[j].k == v[i].k * v[j].b) {
      if (v[j].neg) {
        nk -= v[j].k;
        nb -= v[j].b;
      } else {
        nk += v[j].k;
        nb += v[j].b;
      }
      ++j;
    }
    if (nk != k || nb != b) ++cnt;
    k = nk, b = nb;
    i = j - 1;
  }
  cout << cnt << endl;
  return 0;
}
