Peace small elephant

Accepts: 38
Submissions: 108
Time Limit: 10000/5000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
小明很喜欢国际象棋,尤其喜欢国际象棋里面的大象(只要无阻挡能够斜着走任意格),但是他觉得国际象棋里的大象太凶残了,于是他想到了小象,
小象就没有大象那么凶残,它的攻击范围是它当前格子直角所斜对的格子。现在小明要在棋盘上放很多个小象,有趣的是,当两个小象所在格子有公共边时,
它们将合体变成合体象,多个小象满足条件也会合体,合体象的攻击范围也是它所覆盖格子区域直角所斜对的格子,现在要求任何一个象的攻击范围上是空的(即不摆放棋子),
小明的棋盘很特殊,有$m*n$个格子,求满足条件的摆放的方案数,由于方案数太大,需要对$1000000007$取模。
下面给出几种形状下的象的攻击范围图,叉号表示攻击范围。

输入描述
输入有多组数据(最多$5$组),每组数据有两个整数$n,m$含义如题目描述。
$1 \leq m \leq 7,1 \leq n \leq 1000000000$
输出描述
每组数据对应输出一行包含一个整数,表示满足条件的摆放的方案数。
输入样例
1 1
2 3
输出样例
2
50