#include<bits/stdc++.h>
#define N 205
using namespace std;
const int mo=998244353;
int n,m,pw[N],ans,cnt;
struct dot{
	int x,y;
	dot(int _x=0,int _y=0){ x=_x,y=_y;}
}a[N];
dot operator +(const dot &p,const dot &q){ return dot(p.x+q.x,p.y+q.y);}
dot operator -(const dot &p,const dot &q){ return dot(p.x-q.x,p.y-q.y);}
int C(int n,int m){ if(m==0) return 1; if(m==1) return n; return n*(n-1)/2;}
int cj(dot p,dot q){ return p.x*q.y-p.y*q.x;}
void inc(int &x,int y){ x=x+y>=mo ? x+y-mo : x+y;}
void dec(int &x,int y){ x=x-y<0 ? x-y+mo : x-y;}
int main()
{
	int i,j,k;
	scanf("%d",&n);
	pw[0]=1;
	for(i=1;i<=n;i++) pw[i]=pw[i-1]*2%mo;
	ans=pw[n];
	dec(ans,C(n,2));
	dec(ans,C(n,1));
	dec(ans,C(n,0));
	for(i=1;i<=n;i++)
		scanf("%d %d",&a[i].x,&a[i].y);
	for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++){
			for(k=1;k<=j;k++)
				if(k!=i&&k!=j&&cj(a[k]-a[i],a[j]-a[i])==0) break;
			if(k<j) continue;
			cnt=2;
			for(k=j+1;k<=n;k++)
				if(cj(a[k]-a[i],a[j]-a[i])==0) cnt++;
			dec(ans,pw[cnt]);
			inc(ans,C(cnt,0));
			inc(ans,C(cnt,1));
			inc(ans,C(cnt,2));
		  }
	cout<<ans;
	return 0;
}
