#include<bits/stdc++.h> using namespace std; using ll = long long; const ll MOD = 998244353; ll adjust(ll n){ n %= MOD; n += MOD; n %= MOD; return n; } ll add(ll a,ll b){ return adjust(a + b); } ll mul(ll a,ll b){ return adjust(a * b); } ll pow(ll a,ll b){ ll res = 1; while(b > 0){ if(b % 2 == 1){ res = mul(res, a); } a = mul(a, a); b /= 2; } return res; } ll inv(ll n){ return pow(n, MOD-2); } ll factorial(ll n){ ll res = 1; for(ll i=2;i<=n;++i){ res = mul(res, i); } return res; } ll rect(ll h,ll w){ ll up = 1; ll down = 1; for(int i=1;i<=h;++i){ for(int j=0;j<w-1;++j){ up = mul(up, h * w - (i - 1) * w - 1 - j); down = mul(down, j + 1); } } return mul(up, inv(down)); } int main(){ int k; cin >> k; ll ans = 1; ll sum = 0; for(int i=0;i<k;++i){ ll l; ll m; cin >> l >> m; sum += l * m; ans = mul(ans, rect(m,l)); ans = mul(ans, inv(factorial(l * m))); } ans = mul(ans, factorial(sum)); cout << ans << endl; }