#include<iostream>
#include<cstdio>
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define ROF(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=1010,T=1000,P=998244353;
int n,A,B,ans,a,b,iv[N],fc[N],vf[N],p[N],f[N][N];
int main(){
	scanf("%d",&n);
	iv[1]=fc[0]=vf[0]=p[0]=f[0][0]=1;
	FOR(i,2,T) iv[i]=1ll*iv[P%i]*(P-P/i)%P;
	FOR(i,1,T) fc[i]=1ll*fc[i-1]*i%P,vf[i]=1ll*vf[i-1]*iv[i]%P;
	FOR(x,1,n){
		scanf("%d%d",&a,&b);
		(A+=a)%=P,(B+=b)%=P;
		FOR(i,1,B) p[i]=1ll*p[i-1]*a%P;
		ROF(i,A,a)ROF(j,B,0)FOR(k,0,min(j,b-1)) 
			(f[i][j]+=P-1ll*f[i-a][j-k]*vf[k]%P*p[k]%P)%=P;
	}
	FOR(i,1,A){
		FOR(j,1,B+1) p[j]=1ll*p[j-1]*iv[i]%P;
		FOR(j,0,B) (ans+=1ll*fc[j]*p[j+1]%P*f[i][j]%P)%=P;
	}
	cout<<(P-1ll*ans*A%P)%P<<'\n';
}