描述

0维空间的元素是点,这个毋庸置疑。

2个0维空间的元素可以围成一个1维空间的元素,线段。

4个1维空间的元素可以围成一个2维空间的元素,正方形。

6个2维空间的元素可以围成一个3维空间的元素,正方体。

8个3维空间的元素可以围成一个4维空间的元素,超正方体。

……

一个正方形中,有4个(顶)点,4条线段(边),1个正方形。

一个正方体中,有8个(顶)点,12条线段(棱),6个正方形(面),1个正方体。

……

我们的问题是:给出a与b,请求出:在a维空间的元素中,包含着多少个b维空间的元素。答案可能很大,只需要输出它除以1000000007的余数。

输入格式

两个整数a,b,以空格隔开。

输出格式

一个整数,即答案。

样例输入

3 1

样例输出

12

数据范围与约定

对于100%的数据,a,b≥0。

对于5%的数据,a,b≤1;对于10%的数据,a,b≤2;对于20%的数据,a,b≤3;对于35%的数据,a,b≤4。

对于70%的数据,a,b≤1000;对于100%的数据,a,b≤100000。

对于15%的数据,b=0;对于各10%的数据,b=1或b=2。

样例解释

3维空间的元素是正方体,1维空间的元素是线段。所求即是一个正方体中棱的数量,为12。