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;

using ll = long long;

const bool DEBUG = 1;

const int mxn = 3e5, mod = 1e9+7;
ll n, a, b, c;
ll ac, bc, cc;

ll fac[mxn], inv[mxn];

ll modpow(ll a, ll b) {
	a%=mod;
	return b?modpow(a*a%mod,b/2)*(b&1?a:1)%mod:1;
}

ll choose(int n, int r) {
	if (n<r || n<0 || r<0) return 0;
	return fac[n]*inv[r]%mod*inv[n-r]%mod;
}

ll p(int x, int n, bool lsa) {
	return choose(n-1,x-lsa)*modpow(ac,x)%mod*modpow(bc,n-x)%mod;
}

void add(ll &a, ll b) { 
	a+=b; a%=mod;
}

ll inverse(ll a) { return modpow(a,mod-2); }

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
#ifdef LOCAL
	if (DEBUG) freopen("input.txt", "r", stdin);
	if (DEBUG) freopen("output.txt", "w", stdout);
	clock_t start = clock();
#endif

	cin >> n >> a >> b >> c;

	// init
	for (int i = 0; i < mxn; i++)
		fac[i] = i?fac[i-1]*i%mod:1;
	inv[mxn-1] = modpow(fac[mxn-1],mod-2);
	for (int i = mxn - 2; i >= 0; i--)
		inv[i] = inv[i+1]*(i+1)%mod;

	// precomp
	ll tmp = modpow(100,mod-2);
	a=a*tmp%mod; b = b*tmp%mod; c = c*tmp%mod;
	tmp = modpow((1+mod-c)%mod,mod-2);
	ac = a*tmp%mod; bc = b*tmp%mod; cc = tmp;

	ll e = 0;
	for (int games = n; games < 2*n; games++) {
		add(e, (games*cc%mod)*
			p(n,games,1)%mod);
		add(e, (games*cc%mod)*
			p(games-n,games,0)%mod);
	}
	cout << e << endl;

#ifdef LOCAL
	cout << setprecision(12) << (long double)(clock()-start) / CLOCKS_PER_SEC << endl;
#endif
	return 0;
}
