Harry And Magic Box

Accepts: 64
Submissions: 174
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
问题描述
有一天,哈利得到了一个神奇的盒子。这个盒子由n*m个格子组成,有一些格子里会有闪闪发光的宝石。但是盒子的顶部和底部都被神奇的魔法封印着,所以哈利没办法从顶部和底部看到盒子的内部。然而,盒子的四边都是透明的,哈利可以从盒子的四边看到里面的情况。哈利发现,这个神奇的盒子,从左边看过去,每一行都闪烁着光芒,从前面看过去,每一列也都闪烁着光芒。哈利想知道,盒子里的宝石有多少种分布情况。答案有可能很大,所以输出答案对1000000007取模。
输入描述
多组输入数据
每组数据一行,输入两个数n m表示盒子的大小,$0 \leq n, m \leq 50$
输出描述
每组数据输出一行,一个整数,代表方案数
输入样例
1 1
2 2
2 3
输出样例
1
7
25

提示:
对于第二组数据,存在7种可行的方案:
11
11

11
10

11
01

10
11

01
11

01
10

10
01

假设格子里包含宝石是为1,否者为0。