K=int(input()) LM=[list(map(int,input().split())) for i in range(K)] mod=998244353 FACT=[1] for i in range(1,10**8+1): FACT.append(FACT[-1]*i%mod) FACT_INV=[pow(FACT[-1],mod-2,mod)] for i in range(10**8,0,-1): FACT_INV.append(FACT_INV[-1]*i%mod) FACT_INV.reverse() def Combi(a,b): if 0<=b<=a: return FACT[a]*FACT_INV[b]%mod*FACT_INV[a-b]%mod else: return 0 K=[] for l,m in LM: K.append(l*m) ANS=1 SUM=sum(K) for i in range(len(K)): ANS=ANS*Combi(SUM,SUM-K[i])%mod SUM-=K[i] for l,m in LM: SUM=l*m for i in range(m): ANS=ANS*Combi(SUM,SUM-l)%mod SUM-=l ANS=ANS*FACT_INV[m]%mod print(ANS%mod)