#include <iostream>

using namespace std;

int b, w, n;
const int MOD = 1e9 + 7;

long long fact[500000];
long long ufact[500000];

long long inq(long long x, long long y)
{
    if (y == 0) return 1;
    long long l = inq(x, y / 2);
    if (y % 2) return l * l % MOD * x % MOD;
    return l * l % MOD;
}

long long cnk(long long n, long long k)
{
    if (k < 0 || k > n) return 0;
    return fact[n] * ufact[k] % MOD * ufact[n - k] % MOD;
}

long long ways[2][500000];
long long pref[2][500000];
long long weig[2][500000];
long long allways[500000];

int main()
{
    cin >> b >> w;
    n = b + w;
    allways[0] = 1;
    fact[0] = 1;
    ufact[0] = 1;
    cout << (int)(5e8 + 4) << "\n";
    for (int i = 1; i < n; i++)
    {
        fact[i] = fact[i - 1] * i % MOD;
        ufact[i] = inq(fact[i], MOD - 2);
        ways[0][i] = cnk(i - 1, w - 1);
        ways[1][i] = cnk(i - 1, b - 1);
        pref[0][i] = (pref[0][i - 1] + ways[0][i]) % MOD;
        pref[1][i] = (pref[1][i - 1] + ways[1][i]) % MOD;
        weig[0][i] = (2 * weig[0][i - 1] + ways[0][i]) % MOD;
        weig[1][i] = (2 * weig[1][i - 1] + ways[1][i]) % MOD;
        allways[i] = (2 * allways[i - 1] + MOD + MOD - cnk(i - 1, w) - cnk(i - 1, b)) % MOD;
        //cout << allways[i] << "\n";
        long long ways_with_selection = (allways[i] - pref[0][i] - pref[1][i] + MOD + MOD) % MOD;
        cout << (ways_with_selection + 2 * weig[0][i]) * inq(inq(2, i + 1), MOD - 2) % MOD << endl;
    }
}
