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>
#define ll long long
#define mod 1000000007
#define maxn 200010
using namespace std;
int n, fac[maxn], inv[maxn];
int C(int n, int m) {return (ll)fac[n] * inv[m] % mod * inv[n - m] % mod;}
int calc(int a, int k)
{
	int ans = 1;
	while (k)
	{
		if (k % 2) ans = (ll)ans * a % mod;
		a = (ll)a * a % mod;
		k /= 2;
	}
	return ans;
}
int main()
{
	int res = 0, a, b, c, p1, p2;
	cin >> n >> a >> b >> c;
	fac[0] = 1;
	for (int i = 1; i <= 2 * n; i++)
		fac[i] = (ll)fac[i - 1] * i % mod;
	inv[2 * n] = calc(fac[2 * n], mod - 2);
	for (int i = 2 * n - 1; i >= 0; i--)
		inv[i] = inv[i + 1] * ((ll)i + 1) % mod;
	a = (ll)a * calc(100, mod - 2) % mod;
	b = (ll)b * calc(100, mod - 2) % mod;
	p1 = (ll)a * calc((a + b) % mod, mod - 2) % mod;
	p2 = (1 - p1 + mod) % mod;
	for (int i = 0; i <= n - 1; i++)
	{
		int gl = (ll)calc(p2, i) * calc(p1, n) % mod * C(i + n - 1, i) % mod;
		res = (res + gl * ((ll)n + i) % mod) % mod;
	}
	for (int i = 0; i <= n - 1; i++)
	{
		int gl = (ll)calc(p1, i) * calc(p2, n) % mod * C(i + n - 1, i) % mod;
		res = (res + gl * ((ll)n + i) % mod) % mod;
	}
	res = (ll)res * calc((a + b) % mod, mod - 2) % mod;
	cout << res << endl;
	return 0;
}