#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 998244353

void U(int &x,int y){
    x=(x+y)%mod;
}

ll K(ll x,ll y=mod-2){
    ll t=1;
    for (;y;y>>=1,x=x*x%mod)
        if (y&1) t=t*x%mod;
    return t;
}

int n, N=400, a[404], b[404], f[404][404], g[404][404];
ll jc[404], inv[404];

void trans(int a,int b){
    memset(g,0,sizeof g);
    for (int i=0;i<=N;++i)
        for (int j=0;j<=N;++j)
            if (f[i][j]){
                U(g[i][j],f[i][j]);
                ll pw=1;
                for (int k=0;k<b;++k){
                    U(g[i+a][j+k],mod-f[i][j]*pw%mod*inv[k]%mod);
                    pw=pw*a%mod;
                }
            }
    memcpy(f,g,sizeof f);
}

int main(){
    cin>>n;
    for (int i=0;i<=N;++i){
        jc[i]= i? jc[i-1]*i%mod: 1;
        inv[i]=K(jc[i]);
    }
    for (int i=1;i<=n;++i) cin>>a[i]>>b[i];
    f[0][0]=mod-1;
    int sum=0;
    for (int i=1;i<=n;++i){
        trans(a[i],b[i]);
        sum+=a[i];
    }
    ll ans=0;
    for (int i=1;i<=N;++i){
        ll ivi=K(i), pw=sum*ivi%mod;
        for (int j=0;j<=N;++j){
            ans=(ans+f[i][j]*pw%mod*jc[j])%mod;
            pw=pw*ivi%mod;
        }
    }
    cout<<ans<<endl;
}