p03083 ExaWizards 2019 - Black or White
Today, Snuke will eat B pieces of black chocolate and W pieces of white chocolate for an afternoon snack.

He will repeat the following procedure until there is no piece left:

* Choose black or white with equal probability, and eat a piece of that color if it exists.



For each integer i from 1 to B+W (inclusive), find the probability that the color of the i-th piece to be eaten is black. It can be shown that these probabilities are rational, and we ask you to print them modulo 10^9 + 7, as described in Notes.

Constraints

* All values in input are integers.
* 1 \leq B,W \leq 10^{5}

Input

Input is given from Standard Input in the following format:


B W


Output

Print the answers in B+W lines. In the i-th line, print the probability that the color of the i-th piece to be eaten is black, modulo 10^{9}+7.

Examples

Input

2 1


Output

500000004
750000006
750000006


Input

3 2


Output

500000004
500000004
625000005
187500002
187500002


Input

6 9


Output

500000004
500000004
500000004
500000004
500000004
500000004
929687507
218750002
224609377
303710940
633300786
694091802
172485353
411682132
411682132
```python
MOD = 10**9+7
MAX = 2*(10**5)+1
fac = [1 for i in range(MAX)]
finv = [1 for i in range(MAX)]
inv = [1 for i in range(MAX)]
b,w = map(int,input().split())
if (b >= w):
    flag = 0
else:
    flag = 1
    b,w = w,b

for i in range(2,MAX):
    fac[i] = fac[i-1]*i%MOD
    inv[i] = MOD - inv[MOD%i]*(MOD // i)%MOD
    finv[i]=finv[i-1]*inv[i]%MOD

def com(n,k):
    if(n < k): return 0
    return fac[n]*(finv[k]*finv[n-k]%MOD)%MOD

def pow(n,k,m):#n^k mod m
    ans = 1
    while k>0:
        if(k & 1):ans = (ans*n) % m
        n = (n*n)%m
        k >>= 1
    return ans

for i in range(w):
    print(inv[2])

p1 = 1
p2 = 0
for i in range(1,w+1):
    p2 = (p2+ com(w,i)) % MOD

deno = pow(inv[2],w,MOD)
denodeno = pow(2,w,MOD)
for i in range(b-w):
    p1 = (p1*2)%MOD
    deno = (deno* inv[2]) % MOD
    denodeno = (denodeno*2) % MOD
    if(flag == 0):print(((p1+p2)*deno)%MOD)
    else : print(((denodeno-p1-p2)*deno)%MOD)
    p2 = (p2*2-com(w+i,i+1)) % MOD
    p1 = (p1+com(w+i,i+1)) % MOD
    
    


p2 -= 1

for i in range(b+1,b+w+1):
    p1 *= 2
    deno = (deno* inv[2]) % MOD
    denodeno = (denodeno*2) % MOD
    if(flag == 0):print(((p1+p2)*deno)%MOD)
    else : print(((denodeno-p1-p2)*deno)%MOD)
    p1 = (p1+com(i-1,w-1)) % MOD
    p2 = (p2*2-com(i-1,w-1)-com(i-1,i-b)) % MOD
```