#include <bits/stdc++.h>
using namespace std;
#define int long long
#define maxn 2505
struct cow { int Max, Min; } SPF[maxn];
struct wat { int S, cover; } num[maxn];
int c, l;
int ans;
bool cmp(cow a, cow b) { return a.Max > b.Max; }
bool comp(wat a, wat b) { return a.S > b.S; }
bool check(int i, int j) {
if (num[j].cover <= 0) return false;
if (num[j].S > SPF[i].Max || num[j].S < SPF[i].Min) return false;
return true;
}
signed main() {
cin >> c >> l;
for (int i = 1; i <= c; i++) cin >> SPF[i].Min >> SPF[i].Max;
for (int i = 1; i <= l; i++) cin >> num[i].S >> num[i].cover;
sort(SPF + 1, SPF + 1 + c, cmp), sort(num + 1, num + l + 1, comp);
for (int i = 1; i <= c; i++) for (int j = 1; j <= l; j++)
if (check(i, j)) { num[j].cover--, ans++; break; }
cout << ans << endl;
return 0;
}
对着题解找错招半天都没找到/kk