#include <bits/stdc++.h>
using namespace std;
#define int long long

const int mod=1e9+7;

int pw(int a,int t){
    int x=1;
    while(t){
        if(t&1)x=x*a%mod;
        a=a*a%mod,t>>=1;
    }
    return x;
}
int32_t main(){
    ios::sync_with_stdio(0),cin.tie(0);
    int n,z=0;
    cin >> n;
    map <pair <int,int>,int> m;
    for(int i=0;i<n;i++){
        int a,b;
        cin >> a >> b;
        if(a==0 and b==0){
            z++;
            continue;
        }
        if(b<0)b=-b,a=-a;
        int g=__gcd(a,b);
        if(g)a/=g,b/=g;
        m[{a,b}]++;
    }
    int ans=1;
    for(auto i:m){
        int a=i.first.first,b=i.first.second;
        if(i.second==0)continue;
        int na=-b,nb=a;
        if(a<0)na=-na,nb=-nb;
        int x=i.second,y=m[{na,nb}];
        m[{na,nb}]=0;
        int r=(pw(2,x)+pw(2,y)-1+mod)%mod;
        ans=(ans*r)%mod;
    }
    cout << (ans+mod-1+z)%mod;
}