#include <iostream>
#include <algorithm>

using namespace std;

int d, n, m;

int v[1001];

struct scutire{
    int x, y;
};

scutire q[1001];

scutire rez[1001];

bool sortez(scutire a, scutire b) {
    return a.x < b.x;
}

int scut[1001];

int main() {
    cin>>d>>n>>m;
    for (int i = 1; i <= n; ++i) {
        cin>>v[i];
        scut[v[i]] = 1;
    }
    for (int i = 1; i <= m; ++i) {
        cin>>q[i].x>>q[i].y;
    }
    int mini = 100000;
    sort(q + 1, q + m + 1, sortez);
    for (int i = 1; i <= m; ++i) {
        for (int j = i - 1; j >= 0; --j) {
            if (q[i].x > q[j].y ) {
                if (rez[j].x > rez[i].x) {
                    rez[i] = rez[j];
                } else {
                    if (rez[j].x > rez[i].x && rez[j].y < rez[i].y) {
                        rez[i].y = rez[j].y;
                    }
                }
            }
        }
        ++rez[i].y;
        for (int j = q[i].x; j <= q[i].y; ++j) {
            rez[i].x += scut[j];
        }
        if (rez[i].x == n && rez[i].y < mini) {
            mini = rez[i].y;
        }
        cout<<q[i].x<<" "<<q[i].y<<" "<<rez[i].x<<" "<<rez[i].y<<"\n";
    }
    cout<<mini<<"\n";
    return 0;
}