#include <bits/stdc++.h>
using namespace std;

#define rep(i, n) for(int i = 0; i < (n); i++)
#define repp(i, l, r) for(int i = (l); i < (r); i++)
#define per(i, n) for(int i = ((n)-1); i >= 0; i--)
#define perr(i, l, r) for(int i = ((r)-1); i >= (l); i--)
#define all(x) (x).begin(),(x).end()
#define MOD 1000000007
#define IINF 1000000000
#define LINF 1000000000000000000
#define SP <<" "<<
#define CYES cout<<"Yes"<<endl
#define CNO cout<<"No"<<endl
#define CFS cin.tie(0);ios::sync_with_stdio(false)

typedef long long LL;
typedef long double LD;

struct sta{
  int now;
  int from;
  int c;
  float d;
};

int main(){
  int n;
  float r,th;
  cin >> n >> r >> th;
  vector<float> x(n),y(n);
  rep(i,n) cin >> x[i] >> y[i];
  vector<vector<float>> d(n,vector<float>(n));
  rep(i,n){
    rep(j,n){
      d[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
    }
  }
  th=th*3.1415926535/180;
  vector<vector<vector<int>>> e(n,vector<vector<int>>(n));
  rep(i,n){
    rep(j,n){
      rep(k,n){
        if(i!=j&&i!=k){
          float a = d[j][k];
          float b = d[i][j];
          float c = d[i][k];
          if(acos((a*a-b*b-c*c)/2/b/c)<th) e[i][j].push_back(k);
        }
      }
    }
  }
  vector<vector<vector<float>>> dist(n,vector<vector<float>>(n,vector<float>(floor(r)+2,IINF)));
  priority_queue<sta,vector<sta>,function<bool(sta,sta)>>
    heap([](const sta &a, const sta &b){return a.d>b.d;});
  repp(i,1,n){
    heap.push({i,0,1,d[i][0]});
  }
  int ans=0;
  while(!heap.empty()){
    sta now = heap.top();
    heap.pop();
    if(dist[now.now][now.from][now.c]!=IINF) continue;
    if(now.d>r) continue;
    dist[now.now][now.from][now.c]=now.d;
    ans=max(ans,now.c);
    for(int &nx:e[now.now][now.from]){
      if(now.d+d[now.now][nx]>r) continue;
      if(dist[nx][now.now][now.c+1]!=IINF) continue;
      heap.push({nx,now.now,now.c+1,now.d+d[now.now][nx]});
    }
  }
  cout << ans << endl;
  return 0;
}

