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<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
using ll = long long;
const int MD = 1000000007;
const int MX = 200005;
int n;
ll a, b, c, u, aa[MX] = {1}, bb[MX] = {1}, ans;
ll exp(ll b, ll n){
	ll res = 1;
	for(; n; n/=2,(b*=b)%=MD) if(n%2) (res *= b) %= MD;
	return res;
}
ll fact[MX] = {1}, invf[MX];
void setcomb(int n){
	for(int i = 1; i <= n; i++) fact[i] = (fact[i-1] * i) % MD;
	invf[n] =  exp(fact[n] ,MD-2);
	for(int i = n; i > 0; i--) invf[i-1] = (invf[i] * i) % MD;
}
inline ll comb(int a, int b){return fact[a] * invf[a-b] % MD * invf[b] % MD;}
int main(){
	scanf("%d%lld%lld%lld", &n, &a, &b, &c);
	u = exp(a+b, MD-2);
	a = a * u % MD;
	b = b * u % MD;
	setcomb(n*2);
	rep(i,n){
		aa[i+1] = aa[i] * a % MD;
		bb[i+1] = bb[i] * b % MD;
	}
	for(int i = n; i < n*2; i++){
		ans += comb(i-1, n-1) * (aa[n] * bb[i-n] % MD + bb[n] * aa[i-n] % MD) % MD * 100 % MD * u % MD * i % MD;
	}
	printf("%lld\n", ans % MD);
}
