小H学数学
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小H今天在学校里学习了数学,学会了正整数的加减法。他很快就能计算出用双手表示的数进行加减运算得到的结果,老师看小H太骄傲了,决定考考小H。老师给小H一个数 x,询问小H用双手有多少种方案凑出 x。注意两只手可以直接表示一个[1,10]范围的数,也能表示两个[1,5]范围的数。每个数都可以选择做加法或减法。数学老师笑着说,为了帮你解决问题,我找了另外 y 个同学帮你(所有同学的手指健全)。
注意,任意一个同学左右手表示的数不同或者计算时需要的操作符不同视为不同的方案。
由于答案方案数可能很大,对答案进行取模,模数为 10^9+7

输入描述:

第一行输入两个整数 x,y,表示需要凑的整数,与帮忙的同学数量。
-10^3\leq x\leq 10^3
0\leq y\leq 99

输出描述:

输出一行整数,表示所有不同方案的数量。
示例1

输入

复制
8 0

输出

复制
4

说明

所有方案为\lbrace 3+5\rbrace,\lbrace 4+4\rbrace,\lbrace 5+ 3\rbrace,\lbrace 8\rbrace
示例2

输入

复制
4 0

输出

复制
6

说明

所有方案为\lbrace 1+3\rbrace,\lbrace 2+2\rbrace,\lbrace 3+ 1\rbrace,\lbrace 5-1\rbrace,\lbrace -1+5\rbrace,\lbrace 4\rbrace
示例3

输入

复制
1 7

输出

复制
280070350

说明

备注: