
#include<stdio.h>
#include <string.h>

struct iwashi
{
    int a;
    int b;
}iw;
int i;

void main(){
    int n;
    int a,b;
    int Ocount=0,Acount=0;
    struct iwashi iw[200000];
    scanf("%d",&n);
    for(i=0;i<n;i++){
    scanf("%d %d",&a,&b);
    iw[i].a=a;
    iw[i].b=b;
    }
    int j;
    for(i=0;i<n;i++){
        for(j=1;j<n-i;j++){
            if((iw[i].a*iw[j].a+iw[i].b*iw[j].b)==0)
            Ocount++;
        }
    }
    int temp;
    for(i=0;i<n;i++){
        temp=1;
        for(j=0;j<=i;j++){
            temp=temp*(n-j)/j+1;
        }
        Acount+=temp;
    }
    printf("%d",Acount-Ocount);

    

}