n = gets.to_i
if n == 1
	puts 0
	exit
end

r, theta = gets.split.map &:to_f
cos = cos(PI * theta / 180)

points = (1..n).map{gets.split.map &:to_f}

neighbour = {}
stack = []
(0..n-1).each{|i|
	((0..n-1).to_a - [i]).map{|j| 
		e = [i, j]
		v1 = Vector[*points[j]] - Vector[*points[i]]
		stack << [i, j, v1.r, 1] if i == 0 && v1.r < r
		((0..n-1).to_a - [j]).each{|k|
			f = [j, k]
			v2 = Vector[*points[k]] - Vector[*points[j]]
			if v1.inner_product(v2) / (v1.r * v2.r) > cos
				(neighbour[e] ||= Set.new) << f
			end
		}
	}
}

#p neighbour

best = 0
until stack.empty?
	i, j, d, c = stack.pop
	#p [i, j, d, c]
	(neighbour[[i, j]] || []).each{|_, k|
		v = Vector[*points[k]] - Vector[*points[j]]
		add = v.r
		if d + add < r
			stack << [j, k, d+add, c+1]
			best = c+1 if c+1 > best
		end
	}
end

p best