#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
//英语 看博友分析 抄博友程序 叉积 背
struct nod{
double x;
double y;
};
nod a[200];
int main()
{
double r;
while(scanf("%lf%lf%lf",&a[0].x,&a[0].y,&r)!=EOF)
{
if(r<=0)
{
break;
}
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&a[i].x,&a[i].y);
}
int mx=0;
for(int i=1;i<=n;i++)//抄博友程序
{
int p=0;
int q=0;
for(int j=1;j<=n;j++)//抄博友程序
{
if(((a[i].x-a[0].x)*(a[j].y-a[0].y)-(a[i].y-a[0].y)*(a[j].x-a[0].x))>=0 && sqrt((a[j].x-a[0].x)*(a[j].x-a[0].x)+(a[j].y-a[0].y)*(a[j].y-a[0].y))<=r)
{
p++;
}
if(((a[i].x-a[0].x)*(a[j].y-a[0].y)-(a[i].y-a[0].y)*(a[j].x-a[0].x))<=0 && sqrt((a[j].x-a[0].x)*(a[j].x-a[0].x)+(a[j].y-a[0].y)*(a[j].y-a[0].y))<=r)
{
q++;
}
}
//cout<<p<<" "<<q<<endl;
mx=max(mx,q);
mx=max(mx,p);
}
cout<<mx<<endl;
}
return 0;
}