#include<bits/stdc++.h>
#define ll long long
#define N 200010
#define mo 1000000007
using namespace std;
template <typename T> void read(T &x){
	x=0;char c=getchar();int fh=1;
	while (!isdigit(c)){if (c=='-')fh=-1;c=getchar();}
	while (isdigit(c))x=x*10+c-'0',c=getchar();
	x*=fh;
}
ll b,w,gb,gw,jie[N],nj[N];
long double dp[1010][1010];
ll c(ll x,ll y){if (x<y) return 0;return (jie[x]*nj[y]%mo)*nj[x-y]%mo;}
ll po(ll x,ll y){ll z=1;while (y){if (y%2)z=x*z%mo;x=x*x%mo;y/=2;}return z;}
int main(){
	read(b);read(w);
	gb=0;gw=0;
	jie[0]=1;
	for (int i=1;i<=b+w;i++) jie[i]=jie[i-1]*i%mo;
	nj[b+w]=po(jie[b+w],mo-2);for (int i=b+w-1;i>=0;i--) nj[i]=nj[i+1]*(i+1)%mo;
	for (int i=1;i<=b+w;i++){
		printf("%d\n",(gw+(1-gb-gw+mo+mo)*po(2,mo-2))%mo);
		gb=(gb+c(i-1,b-1)*po(2,1ll*i*(mo-2)))%mo;
		gw=(gw+c(i-1,w-1)*po(2,1ll*i*(mo-2)))%mo;
	}
	return 0;
}