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
#include <stdio.h>
#include <algorithm>
long long ansy, ansx;
long long e, f;
long long b, w;
long long p = 1000 * 1000 * 1000 + 7;
long long beki[200005];
long long kai[200005];
long long rui(long long a, long long b) {
	if (b == 0)return 1;
	if (b == 1)return a % p;
	if (b == 2)return a * a%p;
	if (b % 2 == 1) {
		return (rui(rui(a, b / 2), 2))*a%p;
	}
	else return rui(rui(a, b / 2), 2) % p;
}
long long inv(long long a) {
	return rui(a, p - 2);
}
int main() {
	beki[0] = 1;
	for (int i = 1; i < 200005; i++)beki[i] = beki[i - 1] * 2 % p;
	kai[0] = 1;
	for (int i = 1; i < 200005; i++)kai[i] = i * kai[i - 1] % p;
	scanf("%lld%lld", &b, &w);
	for (long long i = 0; i < w + b; i++) {
		ansy = beki[i];
		if (i >= w) {
			e = e * 2 + kai[i - 1] * inv(kai[i - w] * kai[w - 1] % p);
			e %= p;
		}
		if (i >= b) {
			f = f * 2 + kai[i - 1] * inv(kai[i - b] * kai[b - 1] % p);
			f %= p;
		}
		ansy += e;
		ansy -= f;
		ansy += p;
		ansy %= p;
		ansx = beki[i + 1];
		printf("%lld\n", ansy*inv(ansx) % p);
	}
}