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