import sys sys.setrecursionlimit(10**7) def I(): return int(sys.stdin.readline().rstrip()) def MI(): return map(int,sys.stdin.readline().rstrip().split()) def LI(): return list(map(int,sys.stdin.readline().rstrip().split())) def LI2(): return list(map(int,sys.stdin.readline().rstrip())) def S(): return sys.stdin.readline().rstrip() def LS(): return list(sys.stdin.readline().rstrip().split()) def LS2(): return list(sys.stdin.readline().rstrip()) N = I() mod = 998244353 TV = [] M = 0 # Aの項数 for _ in range(N): T,V = MI() M += T TV.append((T,V)) def sum_power(n,i): # 1^i+2^i+…+n^i if i == 1: res = n*(n+1)//2 elif i == 2: res = n*(n+1)*(2*n+1)//6 else: res = n**2*(n+1)**2//4 return res % mod def f(n): res = (M+1)*((sum_power(n,1)+sum_power(n,2))//2)-(sum_power(n,2)+sum_power(n,3))//2 return res % mod l = 0 ans = 0 for T,V in TV: r = l+T ans += (f(r)-f(l))*V ans %= mod l = r print(ans)