#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int ll
using P = pair<int, int>;
#define all(x) x.begin(), x.end()
#define rep(i, l, n) for (int i = l; i < (n); ++i)
#define sz(x) (int)x.size()
const char nl = '\n';
const int mod = 998244353;
void solve() {
int n, m; cin >> n >> m;
vector<P> a(n);
for (auto &i: a)cin >> i.second >> i.first;
vector<int> b(m);
for (auto &i: b)cin >> i;
sort(a.rbegin(), a.rend());
sort(b.rbegin(), b.rend());
int pt = 0, res = 0;
//for (auto i: a)cout << i.first << " " << i.second << nl;
//for (auto i: b)cout << i << nl;
rep(i, 0, n) {
if (b[pt] >= a[i].second)pt += 1, res += 1;
if (pt == m)break;
}
cout << res << nl;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}