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];
    }
}