#include <bits/stdc++.h>
using namespace std;
int x[100000];
int x2[100000];
int y[100000];
int y2[100000];
float area(int x1, int y1, int x2, int y2, int x3, int y3)
{
    return abs((x1*(y2-y3) + x2*(y3-y1)+ x3*(y1-y2))/2.0);
}


bool isInside(int x1, int y1, int x2, int y2, int x3, int y3, int x, int y)
{

    float A = area (x1, y1, x2, y2, x3, y3);

    float A1 = area (x, y, x2, y2, x3, y3);

    float A2 = area (x1, y1, x, y, x3, y3);

    float A3 = area (x1, y1, x2, y2, x, y);

    return (A == A1 + A2 + A3);
}
int stepen(int n){
    if(n==0)return 0;
    int k=1;
    for(int i=0;i<n;i++){
        k=k*2;
    }
    return k-1;
}
int main()
{
/* Let us check whether the point P(10, 15) lies inside the triangle
formed by A(0, 0), B(20, 0) and C(10, 30) */
    int n;
    cin>>n;
    int m=0,r,s=0;
    for(int i=0;i<n;i++){
        cin>>x[i]>>y[i];
        if(y[i]==1){
            m++;
            r=i;
        }
    }
int xx,yy;
int nn=n-1;
if(n==3){
    if(isInside(x[0],y[0], x[1], y[1], x[2], y[2], 0, 0))cout<<1;
        else cout<<0;
    }
else if(m==1){
    for(int i=0;i<nn;i++){
        x2[i]=x[i+1];
        y2[i]=y[i+1];
        }

    sort(x2,x2+nn);
    for(int i=0;i<nn-1;i++){


            for(int j=i+1;j<nn;j++){


                    if(isInside(x2[i],y2[i], x[0], y[0], x2[j], y2[j], 0, 0 )){
                       s=s+stepen(nn-j)*(stepen(j-i-1)+1);

                       break;
                    }

            }

    }
    cout<<s;
}
else {
    for(int i=0;i<n;i++){
        for(int q=0;q<n;q++){
        for(int w=0;w<n;w++){
        for(int l=0;l<n;l++){
        for(int h=0;h<n;h++){
        for(int v=0;v<n;v++){

    }
    }
    }
    }
    }
    }
}


return 0;
}
/*
5
-1 1
2 -1
3 -1
-2 -1
-3 -1
*/