#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NMAX 1001
struct pct{short int x,y;};
struct dr{short int a,b,c;};
int fcmp(void const* a,void const* b){
return strcmp((char *)a,(char *)b);
}
int main(){
freopen("regiuni.in","r",stdin);
freopen("regiuni.out","w",stdout);
int n,m,i,j,nrg=1;
long poz;
char cif[8]={1,2,4,8,16,32,64,128};
char cod[NMAX/2][NMAX/8+2]={{0}},aux[NMAX/8+2];
pct p[NMAX]={{0,0}},t;
dr d[NMAX]={{0,0,0}};
scanf("%d%d",&n,&m);
for(i=0;i<n;i++) scanf("%hd%hd%hd",&d[i].a,&d[i].b,&d[i].c);
for(j=0;j<m;j++) scanf("%hd%hd",&p[j].x,&p[j].y);
for(j=0;j<=m;j++)
for(i=0;i<n;i++){
poz=(long)d[i].a*p[j].x+(long)d[i].b*p[j].y+d[i].c;
if(poz>0L) cod[j][i/8]|=cif[i%8];
}
for(j=0;j<=m;j++)
for(i=0;i<n/8+1;i++) if(cod[j][i]==0) cod[j][i]+=255;
qsort(cod,m,sizeof(cod[0]),fcmp);
for(i=1;i<m;i++)
if(strcmp(cod[i],cod[i-1])!=0) nrg++;
printf("%d",nrg);
return 0;
}