#include #include using mint = atcoder::static_modint<998244353>; //using mint = atcoder::static_modint<1000000007>; using namespace std; using namespace atcoder; using ld = long double; using ll = long long; #define mp(a,b) make_pair(a,b) #define rep(i,s,n) for(int i=s; i dx{1,0,-1,0},dy{0,1,0,-1}; const int M=100000000; vector factorial(M+1,1); // vector invfactorial(M+1,1); int main(){ int k;cin >> k; int n=0; vector l(k),r(k); rep(i,0,k)cin >> l[i] >> r[i],n+=l[i]*r[i]; rep(i,1,M+1)factorial[i]=factorial[i-1]*i; mint ans=factorial[n]; rep(i,0,k){ ans/=factorial[l[i]].pow(r[i]); ans/=factorial[r[i]]; } cout << ans.val(); }