Miguel Angelo 是一位伟大的雕塑家,因其户外雕塑而闻名遐迩。在他的家乡,广场和花园里随处可见他的作品。人们热爱他的雕塑,不仅因为它们美丽,还因为即使过了几十年,它们依然完好如新。由于 Miguel 和他的团队多年来研发的材料和技术,这些雕塑不易降解。
为了制作雕塑,他首先通过将防水石膏(他的秘密材料)积木堆叠成一条直线上的若干个积木堆来构建其基座。他总是使用相同的积木,且每个积木堆至少包含一个积木。为了稳定结构,他在积木堆的前后各放置一块大玻璃板。然后,他会等待下雨,无论等多久。如果该结构在下雨过程中不会积水,Miguel 就能确定该基座可以用于制作一件持久的艺术品。请注意,如果一个积木的两侧(左侧 and 右侧)都有障碍物(其他积木),那么水就会在这个积木上积聚。
下图展示了几个不同基座的前视图。所有这些基座都由三个积木堆组成,共包含六个积木,且每个积木堆按要求至少包含一个积木。然而,左侧的八个基座可以制作出持久的艺术品,而右侧的两个基座则不行。
Miguel Angelo 收到了许多雕塑订单。尽管他在创作艺术品时拥有充分的自由,但他希望公平对待,在每件雕塑中使用相同数量的积木堆和相同数量的积木。由于他不想向不同的客户出售完全相同的雕塑,他每次都会构建一个不同的基座。
他担心自己无法满足所有的订单。请帮助他计算,在给定基座必须拥有的积木堆数量和积木总数的情况下,可以构建多少种不同的基座。
输入格式
输入仅包含一行,其中包含两个整数 $S$ 和 $B$($1 \le S \le B \le 5000$),分别表示基座必须拥有的积木堆数量和积木总数。
输出格式
输出一行,包含一个整数,表示 Miguel 可以构建的、不会积水的不同基座的数量。由于这个数字可能非常大,请输出其模 $10^9 + 7$ 的余数。
样例
输入格式 1
3 6
输出格式 1
8
输入格式 2
3 7
输出格式 2
12