#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { ll B, T, F, P; }; ll MOD = 1234567891; ll _MOD = 1000000009; double EPS = 1e-10; int INF = INT_MAX / 10; bool blue(int t, int T) { return t % T == 0 || t / T % 2 == 0; } int main() { int N, L; cin >> N >> L; int x = 0, t = 0; while (N--) { int X, W, T; cin >> X >> W >> T; t += X - x; x = X; while (!blue(t * 2, T * 2) || !blue(t * 2 + W, T * 2) || !blue(t * 2 + W * 2, T * 2)) t++; } t += L - x; cout << t << endl; }