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

#define int long long
#define REP(i, n) for (int i = 0; i < (n); i++)
#define FOR(i, m, n) for (int i = (m); i < (n); i++)

int MAX = 100000;
int cost_all[200020];
int cost_single[200020];

using pii = pair<int, int>;

using Point = complex<double>;

const double EPS = 1e-6;

double dp[21][21][10010];
double ang(Point a, Point b) {
    Point c = b - a;
    return atan2(c.imag(), c.real());
}
const double pi = acos(-1);
void init() {}
bool canmove[20][20][20];
bool solve() {
    int N;
    cin >> N;
    double r, theta;
    cin >> r >> theta;
    theta = theta / 180 * pi;
    vector<Point> ps(N);
    REP(i, N) {
        double x, y;
        cin >> x >> y;
        ps[i] = {x, y};
    }
    int ans = 0;
    REP(i, N) REP(j, N) REP(c, 10010) dp[i][j][c] = 1e9;
    FOR(i, 1, N) {
        double d = abs(ps[i] - ps[0]);
        dp[0][i][1] = d;
        if (d < r + EPS) ans = 1;
    }

    REP(i, N) REP(j, N) REP(k, N) {
        if (i == j || j == k) continue;
        double t1 = ang(ps[i], ps[j]);
        double t2 = ang(ps[j], ps[k]);
        double t = max(t1, t2) - min(t1, t2);
        if (t > pi + EPS) t = 2 * pi - t;
        if (t < theta + EPS) canmove[i][j][k] = true;
    }
    FOR(c, 1, 10000) {
        REP(i, N) REP(j, N) {
            if (i == j) continue;
            if (dp[i][j][c] > r + EPS) continue;
            REP(k, N) {
                if (k == j) continue;
                if (canmove[i][j][k]) {
                    if (dp[j][k][c + 1] > dp[i][j][c] + abs(ps[j] - ps[k])) {
                        dp[j][k][c + 1] = dp[i][j][c] + abs(ps[j] - ps[k]);
                        if (dp[j][k][c + 1] < r + EPS && c + 1 > ans) ans = c + 1;
                    }
                }
            }
        }
    }
    cout << ans << endl;
    return false;
}
signed main() {
    init();
    while (solve())
        ;
}
