#include <bits/stdc++.h>
using namespace std;
int main() {
  long long N, a, b;
  cin >> N;
  long long iwashi[N];
  for (int i = 0; i < N; i++) {
    cin >> a >> b;
    iwashi[i] = a * b;
  }
  sort(iwashi, iwashi + N);
  long long cnt = 0;
  for (int i = 0; i < N; i++) {
    if (iwashi[i] >= 0) break;
    for (int j = i + 1; j < N; j++) {
      if (iwashi[i] * (-1) == iwashi[j]) cnt++;
    }
  }
  long long ans = 1;
  long long K = N - cnt;
  while (K >= 1) {
    ans = ans * K % 1000000007;
    K--;
  }
  cout << ans + N << endl;
  return 0;
}
