牛郎织女来相会
题号:NC276952
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

七夕已经到了!牛郎织女迫切想要见面,但我们都知道他们要想跨越银河就需要构造鹊桥。
现在,天上飞了无数只喜鹊并且飞行高度 h\ (1 \leq h \leq m\ ),他们都想尽快帮助牛郎织女见面。
鹊桥的形状是一个倒 V,倒 V 指的是 存在 x \in (1,n) 使得 a_{i-1} <a_i\ (\ i \in (1,x]\ ) 且 a_i>a_{i+1}\ (\ i \in [x, n)\ ) 。 
即对于最大值所在的位置,在这个位置左边的所有数字严格递减,在这个位置右边的所有数字严格递减。
但若想鹊桥稳固则必须有且仅有两个位置的喜鹊飞行高度一样。
牛郎织女想请你帮忙计算一下有多少种稳固的鹊桥,以便于他们见面没有安全隐患。
例:1\ 3\ 6\ 9\ 7\ 6\ 4\ 2 即为一个稳固的鹊桥。
答案可能很大,请你输出答案对 10^9+7 取模后的结果。

输入描述:

输入一行两个正整数 n,m\ (\ 3 \leq n \leq m \leq 10^6\ )

输出描述:

输出一行一个结果,由于答案过大请对 10^9+7 取模。
示例1

输入

复制
3 4

输出

复制
6

说明

对于样例 共有如下 6 种稳固的鹊桥
1\ 4\ 1
1\ 3\ 1
1\ 2\ 1
2\ 3\ 2
2\ 4\ 2
3\ 4\ 3