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)