import sys
from functools import lru_cache
input = sys.stdin.readline
sys.setrecursionlimit(10**9+7)
MOD = 10**9+7


@lru_cache(maxsize=None)
def inv(i):#模拟元
    return pow(i, MOD-2, MOD)


@lru_cache(maxsize=None)
def fac(i):  # 阶乘[1,i]
    if i == 0:#也是特判
        return 1
    if i == 1:#递归终止条件
        return 1
    return fac(i-1)*i % MOD


@lru_cache(maxsize=None)
def C(n, m):#组合数计算函数
    if m > n or m < 0:#过滤过滤不合法的数
        return 0
    if n == 0 or n == m:#特判
        return 1
    z = fac(n)
    m = fac(m)*fac(n-m)
    return z*inv(m) % MOD


def solve():
    x, y = map(int, input().split())
    ans = []

    for i in range(1, x+y+1):
        a = (i + 1) // 2 - 1#其中一方段数
        b = i // 2 - 1#另一方段数
        t = (C(x-1, a) * C(y-1, b) +
        C(x-1, b) * C(y-1, a)) % MOD#计算其中一方多一或者双方段数相同
        ans.append(t)

    print("\n".join(map(str, ans)))


solve()