#include <bits/stdc++.h>
using namespace std;
const int nm = 22;
const double eps = 1E-6;
const int mm = 1048577;
const double pi = 3.1415926535897932384626433832795;
int n;
double l, r, x[nm], y[nm], a[nm];
double f[mm];
void nhap() {
  scanf("%d%lf%lf", &n, &l, &r);
  int i;
  for (i = 1; i <= n; ++i) {
    scanf("%lf%lf%lf", &x[i], &y[i], &a[i]);
    a[i] = a[i] * pi / 180.0;
  }
}
int bit(int i, int j) { return ((i >> j) & 1); }
int batbit(int i, int j) { return ((1 << j) | i); }
double tinh(int i, int j) {
  double goc1 = atan2(y[j], x[j] - f[i]);
  double goc2 = pi - goc1;
  if (fabs(a[j] - goc2) < eps || a[j] > goc2) return r;
  double goc3 = goc2 - a[j];
  double goc4 = pi - goc3;
  if (fabs(goc4 - pi / 2.0) < eps) return x[j];
  double a2 = -tan(goc4), c = a2 * x[j] + y[j];
  if (c / a2 > r)
    return r;
  else
    return c / a2;
}
void xuli() {
  int i, j, last = (1 << n) - 1, i2;
  for (i = 0; i <= last; ++i) f[i] = l;
  for (i = 0; i < last; ++i) {
    for (j = 0; j < n; ++j) {
      if (!bit(i, j)) {
        i2 = batbit(i, j);
        f[i2] = max(f[i2], tinh(i, j + 1));
      }
    }
  }
  printf("%.7lf", f[i2] - l);
}
int main() {
  nhap();
  xuli();
}
