using System;
public class Program {
public static void Main() {
string line;
while ((line = System.Console.ReadLine ()) !=
null) { // 注意 while 处理多个 case
string[] tokens = line.Split();
int N = int.Parse(tokens[0]) ;
int M = int.Parse(tokens[1]) ;
int[,] array = new int[N, M];
try{
System.Console.WriteLine(digui(array, N-1, M-1));
}catch(IndexOutOfRangeException ex){
Console.WriteLine($"数组越界错误:{ex.Message}");
}
}
}
static int digui(int[,] array, int n, int m) {
int MOD=1000000007;
if (n == 0 || m == 0) return 1;
if (array[n,m] != 0) return array[n,m];
array[n, m] = (digui(array, n - 1, m) +
digui(array, n, m - 1))%MOD;
return array[n,m];
}
}