#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
vector <pair<int,int> > v;
vector <int> days;
int apd[1010],apv[1010],n,m,d;
int count(int x)
{
    int i,nr=0,a=v[x].first,b=v[x].second;
    for(i=0;i<n;i++)
    {
        if(days[i]>b) return nr;
        if(apd[days[i]]==0 && a<=days[i] && days[i]<=b)
            nr++;
    }
    return nr;
}
int main()
{
    int i,zile,j,maxi,poz,nr,a,b,ture=0;
    cin>>d>>n>>m;
    zile=n;
    for(i=1;i<=n;i++){
        cin>>a;
        days.push_back(a);
    }
    sort(days.begin(),days.end());
    for(i=1;i<=m;i++){
        cin>>a>>b;
        v.push_back(make_pair(a,b));
    }
    while(zile>0)
    {
        maxi=-9999;
        for(i=0;i<m;i++)
        {
            if(apv[i]==0)
            {
                nr=count(i);
                if(maxi<nr)
                {
                    maxi=nr;
                    poz=i;
                }
            }
        }
        apv[poz]=1;
        a=v[poz].first;
        b=v[poz].second;
        for(i=0;i<days.size();i++)
            if(a<=days[i] && days[i]<=b) apd[i]=1;
        zile-=maxi;
        ture++;
    }
    cout<<ture;
}