#include<bits/stdc++.h>
using namespace std;

#define REP(i,a,b) for(int i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

typedef long long ll;

int main() {
    int n,m,q;cin>>n>>m>>q;
    int a[n][n];
    
    rep(i,n)rep(j,n)a[i][j]=0;
    
    int tmp_r,tmp_l;
    rep(i,m){
        cin>>tmp_l>>tmp_r;
        --tmp_l,--tmp_r;
        ++a[tmp_l][tmp_r];
    }

    int b[n][n];
    rep(i,n)rep(j,n)b[i][j]=a[i][j];
    rep(i,n)rep(j,n-1)b[i][j+1]+=b[i][j];
    
    int ql,qr;
    rep(i,q){
        int ans = 0;
        cin>>ql>>qr;
        --ql,--qr;
      ans = b[qr][qr];
        REP(j,ql,qr)ans+=b[j][qr];
//      if(ql!=0)REP(j,ql,qr+1)ans-=b[ql-1][j];

      cout<<ans<<endl;
    }
 	return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define pb push_back
const int maxn=1e6+10;
const int mod=1e9+7;
const double pi=3.1415926535;
int w[3005],v[3005];
int dp[3005][3005][2];


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,t;
    cin>>n>>t;
    for(int i=1;i<=n;i++)
    {
        cin>>w[i]>>v[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=t-1;j++)
        {
            dp[i][j][1]=max(dp[i-1][j][1],dp[i-1][j][0]+v[i]);
            if(j>=w[i])
            {
                dp[i][j][0]=max(dp[i-1][j][0],dp[i-1][j-w[i]][0]+v[i]);
                dp[i][j][1]=max(dp[i][j][1],dp[i-1][j-w[i]][1]+v[i]);
            }
            else
            {
                dp[i][j][0]=dp[i-1][j][0];
            }
        }
    }
    cout<<dp[n][t-1][1]<<'\n';






}
