from math import degrees, atan2
from collections import defaultdict

MOD = 10**9+7
N = int(input())
# y, xの順に渡すので注意
# print(math.degrees(math.atan2(3**(1/2), 1)))

points = [list(map(int, input().split())) for _ in range(N)]
tmp = defaultdict(int)
for i in range(N):
    a, b = points[i]  # bをy座標, aをx座標と考える
    tmp[degrees(atan2(b, a)) % 90] += 1
# 90になる
# 絶対値にしてmod90で同じものがあるかどうか
# 数えることができている
ans = 1
for v in tmp.values():
    ans *= (v+1)
    ans %= MOD
print(ans-1)
