#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

typedef pair <int, int> ii;

const int Maxn = 1005;

int d, n, m;
bool days[Maxn];
vector <int> seq[Maxn];
int res;

int main()
{
	scanf("%d %d %d", &d, &n, &m);
	for (int i = 0; i < n; i++) {
		int cur; scanf("%d", &cur);
		days[cur] = true;
	}
	for (int i = 0; i < m; i++) {
		int a, b; scanf("%d %d", &a, &b);
		seq[a].push_back(b);
	}
	priority_queue <int> Q;
	int lst = -1;
	for (int i = 0; i <= d; i++) {
		for (int j = 0; j < seq[i].size(); j++)
			Q.push(seq[i][j]);
		if (days[i] && lst < i) {
			res++; lst = Q.top(); Q.pop();
		}
	}
	printf("%d\n", res);
	return 0;
}