#include <bits/stdc++.h>
using namespace std;
double L, R;
pair<double, double> light[22];
double range[22];
int n;
double dp[1 << 20];
double dist(pair<double, double> A, pair<double, double> B) {
  double dx = B.first - A.first, dy = B.second - A.second;
  return sqrt(dx * dx + dy * dy);
}
double norm(pair<double, double> X) {
  return sqrt(X.first * X.first + X.second * X.second);
}
double angle(pair<double, double> A, pair<double, double> B,
             pair<double, double> C) {
  pair<double, double> X = make_pair(B.first - A.first, B.second - A.second);
  pair<double, double> Y = make_pair(C.first - A.first, C.second - A.second);
  double ans =
      acos((X.first * Y.first + X.second * Y.second) / norm(X) / norm(Y));
  if (ans < 0) ans = -ans;
  return ans;
}
int main() {
  scanf("%d %lf %lf", &n, &L, &R);
  for (int i = 0; i < n; i++) {
    scanf("%lf %lf %lf", &light[i].first, &light[i].second, &range[i]);
    range[i] = range[i] / 180.0 * acos(-1.0);
  }
  dp[0] = L;
  for (int mask = 1; mask < (1 << n); mask++) {
    dp[mask] = L;
    for (int i = 0; i < n; i++)
      if (mask & (1 << i)) {
        double left_pos = dp[mask ^ (1 << i)];
        double tmp =
            angle(light[i], make_pair(left_pos, 0.0), make_pair(R, 0.0));
        if (tmp <= range[i]) {
          dp[mask] = R;
          break;
        }
        pair<double, double> v =
            make_pair(left_pos - light[i].first, -light[i].second);
        pair<double, double> dv =
            make_pair(cos(range[i]) * v.first - sin(range[i]) * v.second,
                      sin(range[i]) * v.first + cos(range[i]) * v.second);
        double right_pos =
            light[i].first - light[i].second * dv.first / dv.second;
        dp[mask] = max(dp[mask], right_pos);
      }
  }
  printf("%.9lf\n", dp[(1 << n) - 1] - L);
}
