N,M,Q=map(int,input().split()) A=list(map(int,input().split())) u=[1]*(N+1) mod=998244353 v=[0]*(N+1) for i in range(1,N+1): u[i]=u[i-1]*M u[i]%=mod u2=[1]*(N+1) for i in range(1,N+1): ans=1 w=u[i] n=mod-2 while n>0: if n&1: ans*=w ans%=mod w**=2 w%=mod n//=2 u2[i]=ans for i in range(N-1,-1,-1): A[i]-=1 v[i]=v[i+1]+A[i]*u[N-1-i] v[i]%=mod for i in range(Q): l,r=map(int,input().split()) l-=1 r-=1 ans=v[l]-v[r+1] ans%=mod ans*=u2[N-1-r] ans+=1 ans%=mod print(ans)