gets;
t=$<.map{a,b=_1.split.map &:to_r;a==0?b==0?0:1:b==0?-1:a/b}.tally;
t.default=0;
M=10**9+7;
p~-t[0]+t.map{|k,v|
k==0?1:(w=t[-1/k];w>0&&k<0?1:2.pow(v,M)+2.pow(w,M)-1)
}.reduce{_1*_2%M}
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
