#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long l[200010],r[200010];
__int128 b[200010];
__int128 q;
__int128 n,m;
__int128 c[200010],d[200010];
int main(){
long long x,y,z;
cin>>x>>y>>z;
n=x;
m=y;
q=z;
for(int i=1;i<=m;i++){
long long x,y,z;
cin>>x>>y>>z;
l[i]=x;
r[i]=y;
b[i]=z;
}
for(int i=1;i<=m;i++){
c[i]=((r[i]-l[i]+1)*(b[i])+c[i-1]);
d[i]=((r[i]-l[i]+1)*(b[i])*(b[i])+d[i-1]);
}
while(q--){
long long x,y;
cin>>x>>y;
int L,R;
L=upper_bound(l+1,l+1+m,x)-l-1;
R=lower_bound(r+1,r+1+m,y)-r;
__int128 len=(y-x+1);
__int128 sum1=c[R]-c[L-1];
sum1-=(x-l[L])*b[L]+(r[R]-y)*b[R];
__int128 sum2=d[R]-d[L-1];
sum2-=(x-l[L])*b[L]*b[L]+(r[R]-y)*b[R]*b[R];
__int128 ans=len*sum2-sum1*sum1;
ans%=mod;
long long res=ans;
cout<<res<<endl;
}
return 0;
}