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 <stdio.h>
long long p = 1000000007;
long long rui(long long x, long long y) {
	if (y == 0)return 1;
	if (y == 1)return x;
	if (y == 2)return x * x % p;
	if (y % 2)return rui(rui(x, y / 2), 2) * x % p;
	else return rui(rui(x, y / 2), 2);
}
long long inv(long long x) {
	return rui(x, p - 2);
}
long long n, a, b, c;
long long ans;
long long d, e;
int main() {
	scanf("%lld%lld%lld%lld", &n, &a, &b, &c);
	d = a * inv(a + b) % p;
	e = rui(d, n) * n % p;
	for (long long i = 0; i < n; i++) {
		ans += e;
		ans %= p;
		e *= (n + i + 1); e %= p;
		e *= inv(i + 1); e %= p;
		e *= b; e %= p;
		e *= inv(a + b); e %= p;
	}
	d = b * inv(a + b) % p;
	e = rui(d, n) * n % p;
	for (long long i = 0; i < n; i++) {
		ans += e;
		ans %= p;
		e *= (n + i + 1); e %= p;
		e *= inv(i + 1); e %= p;
		e *= a; e %= p;
		e *= inv(a + b); e %= p;
	}
	if (c == 0) {
		printf("%lld\n", ans);
		return 0;
	}
	printf("%lld\n", ans * 100 % p * inv(100 - c) % p);
}