#include<cstdio>
#include<algorithm>
#include<functional>
#include<cmath>
#define NN 3000*(3000-1)/2
using namespace std;
typedef pair<double,double> PP;
typedef pair<int,int> PP2;
PP aa[NN];
int main(void)
{
	int n,k,a,b,c,x[3000],y[3000];
	int i,j,p1,p2,flg,mx,cnt;
	double a1,b1;
	PP2 bb[3000];
	scanf("%d %d",&n,&k);
	for(i=0;i<n;i++)	scanf("%d %d",&x[i],&y[i]);
	flg=0;
	for(i=0;i<n;i++)	{
		bb[i].first=x[i];	bb[i].second=y[i];
	}
	sort(bb,bb+n);
	cnt=1;	mx=1;
	for(i=1;i<n;i++)	{
		if(bb[i].first==bb[i-1].first)	{
			cnt++;	
			mx=max(cnt,mx);
		}
		else {
			cnt=1;
		}
	}
	if(mx>=k)	flg=1;
	for(i=0;i<n;i++)	swap(bb[i].first,bb[i].second);
	sort(bb,bb+n);
	cnt=1;	mx=1;
	for(i=1;i<n;i++)	{
		if(bb[i].first==bb[i-1].first)	{
			cnt++;	
			mx=max(cnt,mx);
		}
		else {
			cnt=1;
		}
	}
	if(mx>=k)	flg=1;	
	if(flg==0)	{
		p1=0;	
		for(i=0;i<n-1;i++)	{
			for(j=i+1;j<n;j++)	{
				if(y[i]!=y[j] && x[i]!=x[j])	{
					a=x[i]-x[j];
					b=y[i]-y[j];
//					printf("a=%d b=%d\n",a,b);
					aa[p1].first=(double)b/a;
					aa[p1].second=(double)y[j]-(double)b/a*x[j];
					p1++;
				}
			}
		}
	}
//	for(i=0;i<p1;i++)	printf("%lf %lf\n",aa[i].first,aa[i].second);	
	sort(aa,aa+p1);
	cnt=1; mx=1;
	for(i=1;i<p1;i++)	{
		a1=fabs(aa[i].first-aa[i-1].first);
		b1=fabs(aa[i].second-aa[i-1].second);
		if(a1<0.000001 && b1<0.000001)	{
			cnt++;
			mx=max(mx,cnt);
		}
		else {
			cnt=1;
		}
	}
	if(mx>=k*(k-1)/2)	flg=1;

	printf("%d\n",flg);
	return 0;
}
	
