#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn=2e5+5;
const ll p=998244353;
ll n,m,q,sq[maxn],sum[maxn],l[maxn],r[maxn],b[maxn];
signed main()
{
scanf("%lld%lld%lld",&n,&m,&q);
for(ll i=1;i<=m;i++)
{
scanf("%lld%lld%lld",&l[i],&r[i],&b[i]);
b[i]%=p;
sq[i]=((b[i]*b[i]%p*((r[i]-l[i]+1)%p))%p+sq[i-1])%p;
sum[i]=(b[i]*(r[i]-l[i]+1)%p+sum[i-1])%p;
}
for(ll i=1;i<=q;i++)
{
ll x,y,sqsum=0,sum1=0;
scanf("%lld%lld",&x,&y);
int L=upper_bound(l+1,l+m+1,x)-l-1;
int R=lower_bound(r+1,r+m+1,y)-r;
if(L==R) {printf("0\n");continue ;};
sqsum+=(r[L]-x+1)%p*b[L]%p*b[L]%p+(y-l[R]+1)%p*b[R]%p*b[R]%p;
sum1+=(r[L]-x+1)%p*b[L]%p+(y-l[R]+1)*b[R]%p;
L++;R--;
if(L<=R);
sqsum=(sqsum+(sq[R]-sq[L-1]+p)%p)%p;
sum1=(sum1+(sum[R]-sum[L-1]+p)%p)%p;
printf("%lld\n",((sqsum%p*(y-x+1)%p-sum1*sum1%p+p)%p+p)%p);
}
return 0;
}