rt,WA #7 #8 #10 #11 #13
#include<algorithm>
#include<iostream>
#include<cstring>
#define C 0x3f3f3f3f
using namespace std;
int n,m,k,qzh[10005],vu[10005],xu[10005],yu[10005],dp[10005][2005];
pair<int,int> po[1005];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m>>k;int p,l,h;
for(int i=1;i<=n;i++) cin>>xu[i]>>yu[i];
for(int i=1;i<=k;i++){
cin>>p>>l>>h;
vu[p]=1;
po[p]={l,h};
}
for(int i=1;i<=n;i++) qzh[i]=qzh[i-1]+vu[i];
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=m;i++) dp[0][i]=0;
for(int i=1;i<=n;i++){
int x=xu[i],y=yu[i];
for(int j=1;j<m;j++){
dp[i][j]=min({dp[i][j],dp[i][j-x]+1,dp[i-1][j-x]+1});
}
for(int k=x;k>=0;k--){
dp[i][m]=min({dp[i][m],dp[i][m-k]+1,dp[i-1][m-k]+1});
}
for(int j=1;j<m;j++){
dp[i][j]=min(dp[i][j],dp[i-1][j+y]);
}
int ans=C;
for(int j=1;j<=m;j++){
if(!(!vu[i]||po[i].first<j&&j<po[i].second)) dp[i][j]=C;
ans=min(ans,dp[i][j]);
}
if(ans>=C){
cout<<0<<endl<<qzh[i-1]<<endl;
return 0;
}
}
int ans=C;
for(int i=1;i<=m;i++) ans=min(ans,dp[n][i]);
cout<<1<<endl<<ans<<endl;
return 0;
}