#406. 强哥的训练

强哥的训练

题目描述

强哥正在参加一个编程思维训练营,教练给他们讲解了一个关于“状态转移”的有趣问题。

强哥带着一个能量瓶参加训练,初始时能量瓶中有 2 单位能量。在训练过程中,他会遇到两种事件:

遇到训练点:能量翻倍

遇到休息站:消耗 1 单位能量

整个训练过程中,他一共会遇到训练点 N 次,遇到休息站 M 次。已知最后一次遇到的是休息站,并且这时他正好用完了所有能量(能量为0)。

请你计算在整个训练过程中,强哥遇到训练点和休息站的顺序有多少种不同的可能?

注意:

  • 当能量为 0 时遇到训练点是允许的,翻倍后还是 0 能量;
  • 但当能量为 0 时遇到休息站是不允许的,因为无法消耗能量。

输入格式

第一行包含两个整数 N,MN, M

1N,M1001 \leq N, M \leq 100

输出格式

输出一个整数表示答案。由于答案可能很大,输出模 109+710^9 + 7 的结果。

5 10
14