#include<iostream>
#include<cstring>
using namespace std;
int n,m,k;
int up[10005];
int down[10005];
int l[10005];
int h[10005];
int dp[10005][1005];
int sum[10005],pp[10005];
int main()
{
freopen("P1941_3.in","r",stdin);
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
cin>>up[i]>>down[i];
for(int i=1;i<=k;i++)
{
int p;
cin>>p;
cin>>l[p]>>h[p];
pp[p]=1;
}
for(int i=1;i<=n;i++)
{
if(h[i]==0)
h[i]=m+1;
sum[i]=sum[i-1]+pp[i];
}
memset(dp,0x3f,sizeof(dp));
for(int i=0;i<=m;i++)
dp[0][i]=0;
for(int i=1;i<=n;i++)
{
for(int j=l[i]+1;j<=h[i]-1;j++)
{
int h=j;int f=1;
while(h-up[i]>=0)
{
dp[i][j]=min(dp[i][j],dp[i-1][h-up[i]]+f);
h=h-up[i];f++;
}
if(j==m)
{
for(int k=j-up[i];k<=m;k++)
dp[i][j]=min(dp[i][j],dp[i-1][k]+1);
}
if(j+down[i]<=m)
dp[i][j]=min(dp[i][j],dp[i-1][j+down[i]]);
}
}
int ans=0x3f3f3f3f;
for(int i=0;i<=m;i++)
ans=min(ans,dp[n][i]);
if(ans!=0x3f3f3f3f)
cout<<1<<endl<<ans<<endl;
else
{
cout<<0<<endl;
for(int i=n;i>=1;i--)
{
for(int j=l[i]+1;j<=h[i]-1;j++)
{
if(dp[i][j]!=0x3f3f3f3f)
{
cout<<sum[i]<<endl;
return 0;
}
}
}
}
return 0;
}