// @NPL1210 2025-10-26
#include <bits/stdc++.h>
#define endl '\n'
typedef int ll;
using namespace std;
 
struct query {
    ll l, r;
};
struct node {
    ll order, u;
};
const ll MAXN = 3e5 + 5;
const ll INF = 1e9;
ll n, ans, a[MAXN], d[MAXN];
query q[MAXN];
vector<ll> g[MAXN], st[4 * MAXN];
vector<node> order;
 
// Dung do thi dang cay phan doan
void update(ll id, ll l, ll r, ll u, ll v, ll i) {
    if (u > r || v < l) return;
    if (u <= l && r <= v) {
        st[id].push_back(i);
        return;
    }
    ll mid = (l + r) >> 1;
    update(id * 2, l, mid, u, v, i);
    update(id * 2 + 1, mid + 1, r, u, v, i);
}
 
// Lay moi doan co chua pos
void get(ll id, ll l, ll r, ll pos, vector<ll> &out) {
    if (pos < l || pos > r) return;
    for (ll x : st[id]) out.push_back(x);
    // Moi pos minh chi lay mot lan thoi nen co the clear tranh lap nhieu lan TLE
    st[id].clear();
    if (l == r) return;
    ll mid = (l + r) >> 1;
    if (pos <= mid) get(id * 2, l, mid, pos, out);
    else get(id * 2 + 1, mid + 1, r, pos, out);
}
 
void sub3() {
    for (ll i = 1; i <= n; i++) {
        update(1, 1, n, q[i].l, q[i].r, i);
    }
    vector<pair<ll,ll>> order;
    for (ll i = 1; i <= n; ++i) order.push_back({a[i], i});
    sort(order.begin(), order.end(), greater<pair<ll,ll>>());
    for (ll i = 1; i <= n; ++i) d[i] = INF;
    queue<ll> qu;
    ll pos = 0;
    while (pos < n) {
        ll cur = order[pos].first;
        vector<ll> src;
        while (pos < n && order[pos].first == cur) {
            ll i = order[pos].second;
            if (d[i] == INF) {
                d[i] = 0;
                src.push_back(i);
            }
            pos++;
        }
        for (ll s : src) qu.push(s);
        while (!qu.empty()) {
            ll u = qu.front(); qu.pop();
            // Lay tat ca i sao cho u thuoc [L_i, R_i]
            vector<ll> got;
            get(1, 1, n, u, got);
            for (ll i : got) {
                if (d[i] == INF) {
                    d[i] = d[u] + 1;
                    qu.push(i);
                }
            }
        }
    }
    for (ll i = 1; i <= n; i++) if (d[i] != INF) ans = max(ans, d[i]);
    cout << ans + 1 << endl;
}
 
void sol() {
    cin >> n;
    for (ll i = 1; i <= n; i++) cin >> a[i];
    for (ll i = 1; i <= n; i++) {
        cin >> q[i].l >> q[i].r;
    }
    sub3();
}
 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
 
    freopen("INCOME.INP", "r", stdin);
    freopen("INCOME.OUT", "w", stdout);
 
    sol();
 
    return 0;
}
 
				Ly8gQE5QTDEyMTAgMjAyNS0xMC0yNgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBlbmRsICdcbicKdHlwZWRlZiBpbnQgbGw7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgcXVlcnkgewogICAgbGwgbCwgcjsKfTsKc3RydWN0IG5vZGUgewogICAgbGwgb3JkZXIsIHU7Cn07CmNvbnN0IGxsIE1BWE4gPSAzZTUgKyA1Owpjb25zdCBsbCBJTkYgPSAxZTk7CmxsIG4sIGFucywgYVtNQVhOXSwgZFtNQVhOXTsKcXVlcnkgcVtNQVhOXTsKdmVjdG9yPGxsPiBnW01BWE5dLCBzdFs0ICogTUFYTl07CnZlY3Rvcjxub2RlPiBvcmRlcjsKCi8vIER1bmcgZG8gdGhpIGRhbmcgY2F5IHBoYW4gZG9hbgp2b2lkIHVwZGF0ZShsbCBpZCwgbGwgbCwgbGwgciwgbGwgdSwgbGwgdiwgbGwgaSkgewogICAgaWYgKHUgPiByIHx8IHYgPCBsKSByZXR1cm47CiAgICBpZiAodSA8PSBsICYmIHIgPD0gdikgewogICAgICAgIHN0W2lkXS5wdXNoX2JhY2soaSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGwgbWlkID0gKGwgKyByKSA+PiAxOwogICAgdXBkYXRlKGlkICogMiwgbCwgbWlkLCB1LCB2LCBpKTsKICAgIHVwZGF0ZShpZCAqIDIgKyAxLCBtaWQgKyAxLCByLCB1LCB2LCBpKTsKfQoKLy8gTGF5IG1vaSBkb2FuIGNvIGNodWEgcG9zCnZvaWQgZ2V0KGxsIGlkLCBsbCBsLCBsbCByLCBsbCBwb3MsIHZlY3RvcjxsbD4gJm91dCkgewogICAgaWYgKHBvcyA8IGwgfHwgcG9zID4gcikgcmV0dXJuOwogICAgZm9yIChsbCB4IDogc3RbaWRdKSBvdXQucHVzaF9iYWNrKHgpOwogICAgLy8gTW9pIHBvcyBtaW5oIGNoaSBsYXkgbW90IGxhbiB0aG9pIG5lbiBjbyB0aGUgY2xlYXIgdHJhbmggbGFwIG5oaWV1IGxhbiBUTEUKICAgIHN0W2lkXS5jbGVhcigpOwogICAgaWYgKGwgPT0gcikgcmV0dXJuOwogICAgbGwgbWlkID0gKGwgKyByKSA+PiAxOwogICAgaWYgKHBvcyA8PSBtaWQpIGdldChpZCAqIDIsIGwsIG1pZCwgcG9zLCBvdXQpOwogICAgZWxzZSBnZXQoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgcG9zLCBvdXQpOwp9Cgp2b2lkIHN1YjMoKSB7CiAgICBmb3IgKGxsIGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIHVwZGF0ZSgxLCAxLCBuLCBxW2ldLmwsIHFbaV0uciwgaSk7CiAgICB9CiAgICB2ZWN0b3I8cGFpcjxsbCxsbD4+IG9yZGVyOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyArK2kpIG9yZGVyLnB1c2hfYmFjayh7YVtpXSwgaX0pOwogICAgc29ydChvcmRlci5iZWdpbigpLCBvcmRlci5lbmQoKSwgZ3JlYXRlcjxwYWlyPGxsLGxsPj4oKSk7CiAgICBmb3IgKGxsIGkgPSAxOyBpIDw9IG47ICsraSkgZFtpXSA9IElORjsKICAgIHF1ZXVlPGxsPiBxdTsKICAgIGxsIHBvcyA9IDA7CiAgICB3aGlsZSAocG9zIDwgbikgewogICAgICAgIGxsIGN1ciA9IG9yZGVyW3Bvc10uZmlyc3Q7CiAgICAgICAgdmVjdG9yPGxsPiBzcmM7CiAgICAgICAgd2hpbGUgKHBvcyA8IG4gJiYgb3JkZXJbcG9zXS5maXJzdCA9PSBjdXIpIHsKICAgICAgICAgICAgbGwgaSA9IG9yZGVyW3Bvc10uc2Vjb25kOwogICAgICAgICAgICBpZiAoZFtpXSA9PSBJTkYpIHsKICAgICAgICAgICAgICAgIGRbaV0gPSAwOwogICAgICAgICAgICAgICAgc3JjLnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBwb3MrKzsKICAgICAgICB9CiAgICAgICAgZm9yIChsbCBzIDogc3JjKSBxdS5wdXNoKHMpOwogICAgICAgIHdoaWxlICghcXUuZW1wdHkoKSkgewogICAgICAgICAgICBsbCB1ID0gcXUuZnJvbnQoKTsgcXUucG9wKCk7CiAgICAgICAgICAgIC8vIExheSB0YXQgY2EgaSBzYW8gY2hvIHUgdGh1b2MgW0xfaSwgUl9pXQogICAgICAgICAgICB2ZWN0b3I8bGw+IGdvdDsKICAgICAgICAgICAgZ2V0KDEsIDEsIG4sIHUsIGdvdCk7CiAgICAgICAgICAgIGZvciAobGwgaSA6IGdvdCkgewogICAgICAgICAgICAgICAgaWYgKGRbaV0gPT0gSU5GKSB7CiAgICAgICAgICAgICAgICAgICAgZFtpXSA9IGRbdV0gKyAxOwogICAgICAgICAgICAgICAgICAgIHF1LnB1c2goaSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxsIGkgPSAxOyBpIDw9IG47IGkrKykgaWYgKGRbaV0gIT0gSU5GKSBhbnMgPSBtYXgoYW5zLCBkW2ldKTsKICAgIGNvdXQgPDwgYW5zICsgMSA8PCBlbmRsOwp9Cgp2b2lkIHNvbCgpIHsKICAgIGNpbiA+PiBuOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gcVtpXS5sID4+IHFbaV0ucjsKICAgIH0KICAgIHN1YjMoKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgZnJlb3BlbigiSU5DT01FLklOUCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigiSU5DT01FLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKCiAgICBzb2woKTsKCiAgICByZXR1cm4gMDsKfQo=