#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=3e4+5,inf=(1<<29)-1;
int n,m,k,p,l,h;
int x[maxn],y[maxn],up[maxn],low[maxn],sum[maxn];
int f[maxn][3005];
int main(){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=1;i<=n;i++){
low[i]=1;
up[i]=m;
}
for(int i=1;i<=k;i++){
scanf("%d%d%d",&p,&l,&h);
low[p]=l+1;
up[p]=h-1;
sum[p]=1;
}
for(int i=1;i<=n;i++){
sum[i]+=sum[i-1];
for(int j=0;j<=m;j++)
f[i][j]=inf;
}
f[0][0]=inf;
// for(int i=1;i<=n;i++)
// for(int j=1;j<=m;j++)
// printf("%7d ",f[i][j]);
// cout<<endl;
for(int i=1;i<=n;i++){
for(int j=x[i]+1;j<=m+x[i];j++)
f[i][j]=min(f[i-1][j-x[i]]+1,f[i][j-x[i]]+1);
for(int j=m+1;j<=m+x[i];j++)
f[i][m]=min(f[i][m],f[i][j]);
for(int j=1;j<=m-y[i];j++)
f[i][j]=min(f[i][j],f[i-1][j+y[i]]);
for(int j=1;j<low[i];j++)
f[i][j]=inf;
for(int j=up[i]+1;j<=m;j++)
f[i][j]=inf;
// for(int j=1;j<=m;j++)
// printf("%7d ",f[i][j]);
// puts("");
bool flag=1;
for(int j=1;j<=m;j++)
if(f[i][j]!=inf){
flag=0;
break;
}
if(flag){
printf("0\n%d",sum[i]-(!(low[i]==1&&up[i]==m)));
return 0;
}
}
int ans=inf;
for(int j=1;j<=m;j++)
ans=min(ans,f[n][j]);
printf("1\n%d",ans);
}