QAQ的问题

Time Limit: 1000

Memory Limit: 131072

题目描述

有 $M$ 个不同的阵地,每个阵地上可以留守任意个士兵(人数为非负整数)。现在 QAQ 有 $N$ 个士兵,他需要选择至少一个阵地才可以获得胜利。QAQ 的一贯原则——让所有士兵留守在他选择的阵地上。问有多少种安排方案使得 QAQ 获得胜利。为了降低难度,QAQ 在选择的阵地上不留守士兵也是合法的。

方案数的不同判定只能依据下面三条:

  1. 选择的阵地数目不同——例如选择 $1$ 个阵地和选择 $2$ 个阵地。
  2. 选择的阵地不同——例如选择阵地 $1$、$2$ 和选择阵地 $2$、$3$。
  3. 在选择的阵地中任意两个阵地留守士兵数目不同——例如在选择的两个阵地上,一种方案中人数分布为 $(a, b)$,另一种为 $(c, d)$,若 $a \ne c$ 或 $b \ne d$(其中 $a,b,c,d$ 均为非负整数),则视为不同方案。

举例说明:当 $N=2$,$M=2$ 时,方案数为 $5$。

输入

有多组测试数据,请处理到文件结束。

每组数据给定两个整数 $N$ 和 $M$,分别表示士兵人数和阵地数目($1 \le N, M \le 50$)。

输出

对每组数据,输出一个整数表示不同的方案数。由于结果可能很大,只需输出其对 $777$ 取模的结果。

注意:如果最终结果为 $777$,则输出 $777 \bmod 777 = 0$。

样例输入

2 2
46 37
1 1

样例输出

5
0
1