Takahashi and Aoki will play a game. They will repeatedly play it until one of them have N wins in total.

When they play the game once, Takahashi wins with probability A %, Aoki wins with probability B %, and the game ends in a draw (that is, nobody wins) with probability C %. Find the expected number of games that will be played, and print it as follows.

We can represent the expected value as P/Q with coprime integers P and Q. Print the integer R between 0 and 10^9+6 (inclusive) such that R \times Q \equiv P\pmod {10^9+7}. (Such an integer R always uniquely exists under the constraints of this problem.)

Constraints

* 1 \leq N \leq 100000
* 0 \leq A,B,C \leq 100
* 1 \leq A+B
* A+B+C=100
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N A B C


Output

Print the expected number of games that will be played, in the manner specified in the statement.

Examples

Input

1 25 25 50


Output

2


Input

4 50 50 0


Output

312500008


Input

1 100 0 0


Output

1


Input

100000 31 41 28


Output

104136146
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
#include <set>
#include <map>
#include <cmath>
#include <cassert>
#include <functional>
#include <string>
#define SIZE 200005
#define MOD 1000000007

using namespace std;
typedef long long int ll;
typedef pair <int,int> P;

ll inv[SIZE],fac[SIZE],finv[SIZE];
void make()
{
	fac[0]=fac[1]=1;
	finv[0]=finv[1]=1;
	inv[1]=1;
	for(int i=2;i<SIZE;i++)
	{
		inv[i]=MOD-inv[MOD%i]*(MOD/i)%MOD;
		fac[i]=fac[i-1]*(ll) i%MOD;
		finv[i]=finv[i-1]*inv[i]%MOD;
	}
}
ll C(int a,int b)
{
	if(a<b) return 0;
	return fac[a]*(finv[b]*finv[a-b]%MOD)%MOD;
}
ll mpow(ll x,ll t)
{
	if(t==0) return 1;
	ll ret=mpow(x,t/2);
	ret=ret*ret%MOD;
	if(t%2==1) ret=ret*x%MOD;
	return ret;
}
int main()
{
	make();
	int n,A,B,DC;
	scanf("%d %d %d %d",&n,&A,&B,&DC);
	ll pa=(ll) A*inv[A+B]%MOD,pb=(ll) B*inv[A+B]%MOD;
	ll ret=0;
	for(int k=0;k<n;k++)
	{
		ret+=C(k+n-1,k)*mpow(pb,k)%MOD*mpow(pa,n)%MOD*(ll) (k+n)%MOD;
		ret+=C(k+n-1,k)*mpow(pa,k)%MOD*mpow(pb,n)%MOD*(ll) (k+n)%MOD;
		ret%=MOD;
	}
	//printf("%lld\n",ret);
	ret=ret*inv[A+B]%MOD*100LL%MOD;
	printf("%lld\n",ret);
	return 0;
}
