unittest
{
	assert( [ "1 25 25 50" ].parse.expand.solve == 2 );
	assert( [ "4 50 50 0" ].parse.expand.solve == 312500008 );
	assert( [ "1 100 0 0" ].parse.expand.solve == 1 );
	assert( [ "100000 31 41 28" ].parse.expand.solve == 104136146 );
}



import std.conv;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto nabc = input.front.split.to!( long[] );
	return tuple( nabc[ 0 ], nabc[ 1 ], nabc[ 2 ], nabc[ 3 ] );
}

auto solve( long n, long a, long b, long c )
{
	auto ra = a.divMod( 100 );
	auto rb = b.divMod( 100 );
	auto rab = ra.addMod( rb );
	
	// 引き分けを除いたときの勝ちと負けの確率を計算
	auto raa = ra.divMod( rab );
	auto rbb = rb.divMod( rab );
	
	// 引き分けを除いたn+m回のうち、片方がn回勝ってm回負けたときを想定
	auto ans = 0L;
	for( auto m = 0L, nm = n; m < n; m++, nm++ )
	{
		// 引き分けを含めた回数を計算
		auto nmd = nm.divMod( rab );
		
		// 引き分けを除いたn+m回になる確率を計算
		// （「引き分けを含めたn+m+d回になる確率」と「引き分けを除いたn+m回になる確率」は同じになる）
		auto p = ( nm - 1 ).combinationMod( n - 1 );							// 勝ち負けパターン数（最後だけ勝ち固定で、それ以前の順序は自由）
		auto wa = p.mulMod( raa.powMod( n ) ).mulMod( rbb.powMod( m ) );		// 高橋君が勝ったときの確率
		auto wb = p.mulMod( raa.powMod( m ) ).mulMod( rbb.powMod( n ) );		// 青木君が勝ったときの確率
		auto wab = wa.addMod( wb );
		
		// 期待値を計算して合計
		ans = ans.addMod( nmd.mulMod( wab ) );
	}
	return ans;
}

// 足し算
auto addMod( long MOD = 10L ^^ 9 + 7 )( long x, long y )
{
	return ( x + y ) % MOD;
}

// 掛け算
auto mulMod( long MOD = 10L ^^ 9 + 7 )( long x, long y )
{
	return x * y % MOD;
}

// 割り算
auto divMod( long MOD = 10L ^^ 9 + 7 )( long x, long y )
{
	return x * y.powMod!MOD( MOD - 2 ) % MOD;
}

// べき乗
auto powMod( long MOD = 10L ^^ 9 + 7 )( long x, long y )
{
	auto a = 1L;
	for( ; 0 < y; y >>= 1 )
	{
		if( y & 1 ) a = a * x % MOD;
		x = x ^^ 2 % MOD;
	}
	return a;
}

// 階乗
auto factorialMod( long MOD = 10L ^^ 9 + 7 )( long x )
{
	static memo = [ 1L ];
	if( memo.length <= x )
	{
		auto i = memo.length;
		memo.length = x + 1;
		for( ; i <= x; i++ ) memo[ i ] = memo[ i - 1 ] * i % MOD;
	}
	return memo[ x ];
}

// 組み合わせ数
auto combinationMod( long MOD = 10L ^^ 9 + 7 )( long x, long y )
{
	return x.factorialMod!MOD.divMod!MOD( y.factorialMod!MOD.mulMod!MOD( ( x - y ).factorialMod!MOD ) );
}
