import math
import bisect
mod=pow(10,9)+7

n=int(input())
cnt=0
za=0
zb=0
p=[]
m=[]
for i in range(n):
    a,b=map(int,input().split())
    if a==0 and b==0:
        cnt+=1
    elif a==0:
        za+=1
    elif b==0:
        zb+=1
    else:
        g=math.gcd(a,b)
        if (a>0 and b>0) or (a<0 and b<0):
            p.append((a/g)/(b/g))
        else:
            m.append(-(b/g)/(a/g))

s=set(p+m)
ans=1
for i in s:
    ans*=pow(2,p.count(i),mod)+pow(2,m.count(i),mod)-1
    ans%=mod

ans*=pow(2,za,mod)+pow(2,zb,mod)-1
ans%=mod

ans-=1

ans+=cnt

print(ans%mod)