#include <cstdio>
#include <algorithm>

using namespace std;

struct Interval {
    int x, y;
};

int n;
int z [1005];
Interval I [1005];
int st [1005];

class MyComp {
public :
    bool operator () (const Interval &A, const Interval &B) {
        return A.y < B.y || (A.y == B.y && A.x < B.x);
    }
};

int binarySearch (const int &value) {
    int i, step;

    for (i = 0, step = (1 << 10); step; step >>= 1)
        if (i + step <= n && z [i + step] < value)
            i = i + step;
    return i;
}

int binarySearch2 (const int &value) {
    int i, step;

    for (i = 0, step = (1 << 10); step; step >>= 1)
        if (i + step <= n && z [i + step] <= value)
            i = i + step;
    return i;
}


int main () {
    int d, m, x, y, u = 0, kx, ky, i, kkx, kky;

   //freopen ("date.in", "r", stdin);

    scanf ("%d%d%d", &d, &n, &m);
    for (i = 1; i <= n; i ++) {
        scanf ("%d", &z [i]);
    }
    sort (z + 1, z + 1 + n);
    u = 0;
    for (i = 1; i <= m; i ++) {
        scanf ("%d%d", &x, &y);
        if (x > y)
            swap (x, y);
        kx = binarySearch (x);
        kx ++;
        ky = binarySearch2 (y);
        if (kx <= ky && kx <= n && ky <= n && kx >= 1 && ky >= 1) {
            I [++ u].x = kx;
            I [u].y = ky;
        }
    }
    sort (I + 1, I + 1 + u, MyComp ());
    st [0] = 0;
    st [++ st [0]] = 1;

    for (i = 2; i <= u; i ++) {
        kx = I [st [st [0]]].x;
        ky = I [st [st [0]]].y;
        if (kx <= I [i].x && I [i].y <= ky)
            continue;
        while (st [0]) {
            if (I [i].x <= kx && ky <= I [i].y) {
                -- st [0];
                kx = I [st [st [0]]].x;
                ky = I [st [st [0]]].y;
            }

            else
                if (st [0] >= 2) {
                    kkx = I [st [st [0] - 1]].x;
                    kky = I [st [st [0] - 1]].y;
                    if (I [i].x <= kky + 1) {
                        st [0] --;
                        kx = I [st [st [0]]].x;
                        ky = I [st [st [0]]].y;
                    }
                    else break;
                }
                else break;
        }
        st [++ st [0]] = i;
    }

    printf ("%d\n", st [0]);
    return 0;
}