Coco 正在和 Hanbyul 用白巧克力和黑巧克力玩井字棋(Tic-Tac-Toe)游戏。井字棋的规则如下:
- 准备一个 $3 \times 3$ 大小的网格游戏盘。
- 两位玩家轮流在游戏盘上的一个空格内放置巧克力。先手玩家放置白巧克力,后手玩家放置黑巧克力。不能在已经有巧克力的格子内放置。
- 先在横向、纵向或对角线方向上连成 3 个相同颜色巧克力的玩家获胜。如果直到游戏盘被填满也没有人获胜,则两位玩家平局。
Coco 渐渐对这个每次都只能平局的游戏感到厌倦,这时他产生了一个疑问:如果两个人在 $N \times M$ 大小的游戏盘上合作制造一局平局的游戏,最终可能出现的不同游戏盘状态有多少种?让我们来帮 Coco 解决这个疑问。即使游戏盘的大小改变,在横向、纵向或对角线方向上连续放置 3 个相同颜色的巧克力仍然算作获胜。
如果两个游戏盘在至少一个相同坐标上放置了不同种类的巧克力,则它们是不同的游戏盘。如果最终巧克力放置的状态完全相同,即使放置巧克力的顺序不同,也视为相同的游戏盘。“对角线方向”仅指 45 度角的右下方向和右上方向。
(以下为样例 1 的说明)
在 $3 \times 3$ 的游戏盘上,可能出现的平局游戏盘共有如下 16 种:
输入格式
第一行给出整数 $N$ 和 $M$ 的值。($1 \le N, M \le 1000$)
输出格式
输出在 $N \times M$ 大小的游戏盘上进行井字棋游戏可能产生的不同平局游戏盘数量模 $10^9+7$ 的余数。
样例
输入样例 1
3 3
输出样例 1
16