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;
typedef vector<int> VI;
typedef pair <int,int> ii;
typedef long long LL;
#define pb push_back
const int INF = 2147483647;
const int MOD = 1000000007;

int n, a, b, c, res;

// rozwiązuje równanie ax=1(%MOD), gdy MOD pierwsze
int inverse(int a, int n = MOD - 2) {
	int r = 1;
	while (n) {
		if (n % 2) r = (r * 1LL * a) % MOD;
		a = (a * 1LL * a) % MOD;
		n >>= 1;
	}
	return r;
}

void go(int a, int b) {
	int l1, l2, k1, k2, w1, w2, i, licz, mian;
	l1 = 1;
	l2 = 1;
	for (i=1;i<=n;i++) {
		l1 = (l1 * 1LL * a) % MOD;
		l2 = (l2 * 1LL * (a + b)) % MOD;
	}
	k1 = 1;
	k2 = 1;
	w1 = 1;
	w2 = 1;
	for (i=0;i<n;i++) {
		licz = (((((l1 * 1LL * k1) % MOD) * w1) % MOD) * (n + i)) % MOD;
		mian = (((l2 * 1LL * k2) % MOD) * w2) % MOD;
		res = (res + ((inverse(mian) * 1LL * licz) % MOD)) % MOD;
		k1 = (k1 * 1LL * b) % MOD;
		k2 = (k2 * 1LL * (a + b)) % MOD;
		w1 = (w1 * 1LL * (n + i)) % MOD;
		w2 = (w2 * 1LL * (i + 1)) % MOD;
	}
}

int main() {
srand(time(0));
scanf("%d %d %d %d", &n, &a, &b, &c);
res = 0;
if (a > 0) go(a, b);
if (b > 0) go(b, a);
if (c > 0) res = (((res * 1LL * inverse(100 - c)) % MOD) * 100LL) % MOD;
printf("%d\n", res);
}
