#include<cstdio>
#include<algorithm>
#include<cstring>
#define ll long long
using namespace std;
const ll MOD=998244353;
ll quick_pow(ll x,ll a)
{
	ll ans=1;
	while(a)
	{
		if(a&1)ans=ans*x%MOD;
		x=x*x%MOD;
		a>>=1;
	}
	return ans;
}
int n,m;
ll a[405],b[405],fact[405],inv[405],invp,sa,sb,A[405][405],B[405][405];
int main()
{
	fact[0]=1;
	for(int i=1;i<=400;i++)fact[i]=fact[i-1]*i%MOD;
	inv[400]=quick_pow(fact[400],MOD-2);
	for(int i=400;i>=1;i--)inv[i-1]=inv[i]*i%MOD;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld%lld",&a[i],&b[i]);
		sa+=a[i],sb+=b[i];
	}
	invp=quick_pow(sa,MOD-2);
	A[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		for(int k=0;k<b[i];k++)
		{
			ll v=MOD-inv[k]*quick_pow(a[i]*invp%MOD,k)%MOD;
			for(int p=0;p<=sa;p++)
			  for(int q=0;q+k<=sb;q++)
				B[p][q+k]=(B[p][q+k]+A[p][q]*v)%MOD;
		}
		for(int p=0;p+a[i]<=sa;p++)
		  for(int q=0;q<=sb;q++)
			B[p+a[i]][q]=(B[p+a[i]][q]+A[p][q])%MOD;
		for(int p=0;p<=sa;p++)
		  for(int q=0;q<=sb;q++)
		    A[p][q]=B[p][q],B[p][q]=0;
	}
	ll ans=0;
	for(int p=0;p<=sa;p++)
	for(int q=0;q<=sb-n;q++)
	{
		A[p][q]=(MOD-A[p][q])%MOD;
		if(p==sa&&q==0)A[p][q]=(A[p][q]+1)%MOD;
		ans=(ans+A[p][q]*fact[q]%MOD*quick_pow(quick_pow(1+MOD-p*invp%MOD,q+1),MOD-2))%MOD;
	}
	printf("%lld\n",ans);
	return 0;
}