import sys input = sys.stdin.readline N,M,Q = map(int,input().split()) A = list(map(lambda x:int(x)-1,input().split())) LR = [tuple(map(int,input().split())) for _ in range(Q)] MOD = 998244353 powM = [1] while len(powM) <= N: powM.append(powM[-1] * M % MOD) invM = pow(M,-1,MOD) invpowM = [1] while len(invpowM) <= N: invpowM.append(invpowM[-1] * invM % MOD) cums = [0] for i in range(N): cums.append(cums[-1] + A[-1-i] * powM[i]) powM.reverse() invpowM.reverse() cums.reverse() for l,r in LR: l -= 1 v = cums[l] - cums[r] v *= invpowM[r] ans = (v+1) % MOD print(ans)