#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define ff  first
#define ss  second
#define pii pair<int, int>
#define sz(v)	(int)(v).size()
#define all(v)	(v).begin(), (v).end()
int main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	int n, m;
	cin >> n >> m;
	pii p[n];
	for (int i = 0; i < n; i++)
		cin >> p[i].ss >> p[i].ff;
	sort(p, p + n);
	vector<int> C(m);
	for (auto &i : C)
		cin >> i;
	sort(C.begin(), C.end());
	int mx = 0;
	for (int mk = 0; mk < 1 << n; mk++) {
		// if (mk != 89) continue;
		bool tr = true;
		int c = -1, pre = -1, cnt = 0;
		for (int i = 0; i < n; i++) {
			if (!(mk >> i & 1)) {
				cnt++;
				c++;
				while (c < m && max(p[i].ss, pre) > C[c]) c++;
				pre = C[c];
				// cout << i << ' ' << p[i].ss << ' ' << p[i].ff << ' ' << c << endl;
				if (c == m) {
					tr = false; break;
				}
			}
		}
		if (tr) {
			mx = max(mx, cnt);
			// if (cnt == 4) cout << mk << endl;
		}
	}
	cout << mx;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |