#include<stdio.h>
int x[801],y[801],n;
inline int sign(long long x)
{return (x<0)?(-1):(x>0)?(1):(0);
}
int dotprod(int x0,int y0, int x1, int y1,int x2,int y2)
{x1-=x0;
x2-=x0;
y1-=y0;
y2-=y0;
return (x1*y2)-(x2*y1);
}
int in_poli(int xx,int yy)
{int semn=sign(dotprod(xx,yy,x[1],y[1],x[2],y[2])),i,s;
for(i=3;i<=n;++i)
{s=sign(dotprod(xx,yy,x[i-1],y[i-1],x[i],y[i]));
if(s==0) return 1;
if(s!=semn) return 0;
}
s=sign(dotprod(xx,yy,x[n],y[n],x[1],y[1]));
if(s==0) return 1;
if(s!=semn) return 0;
return 1;
}
int main()
{FILE *f=fopen("poligon.in","r"),*g=fopen("poligon.out","w");
int m,xx,yy,np=0,i;
fscanf(f,"%d %d\n",&n,&m);
for(i=1;i<=n;++i) fscanf(f,"%d %d\n",&x[i],&y[i]);
for(i=1;i<=m;++i)
{fscanf(f,"%d %d\n",&xx,&yy);
np+=in_poli(xx,yy);
}
fprintf(g,"%d \n",np);
fclose(f);
fclose(g);
return 0;
}