4144: 奥卡贝和埃尔普西孔鲁

内存限制:256 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:11 通过:6

题目描述

奥卡贝喜欢散步,但知道本组织的间谍可能在任何地方;这就是为什么他想知道在他的城市里他可以安全地走多少不同的路。
奥卡贝的城市可以表示为所有点(x, y) 使得x和y是非负的。
奥卡贝开始于原点(0,0)并且需要到达点(k,0)。
如果奥卡贝当前在点(x,y),那么他下一步可以走到(x+1,y-1)或者(x+1,y)或者(x+1,y+1)。


此外,还有n条水平线段,其中第i条从x=ai开始到x=bi结束,并且位于y=ci
保证a1=0,an<=k<=bn
奥卡贝只能在每条线段的下方或恰好线段上行走,如果走到线段上方是不合法的。


奥卡贝现在想知道从原点到点(k,0)的方案数,输出方案数对1e9+7的模数。

输入格式

第一行输入包含整数n和k(1≤n≤100,1≤k≤1018)。
接下来n行每行3个整数ai,bi,ci(0<=ai<=bi<=1018,0<=ci<=15),分别表示线段的左右端点和纵坐标。
保证a1=0,an<=k<=bn,并且ai=bi-1(2<=i<=n)。

输出格式

打印一个整数-方案数对1e9+7的模数。

输入样例 复制

1 3
0 3 3

输出样例 复制

4

数据范围与提示

样例输入
2 6
0 3 0
3 10 2
样例输出
4