#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int xmask[n];
    int ymask[n];

    int rooks[2][n];

    // unos i inicijalizacija maski
    for (int i = 0; i < n; i++) {
        cin >> rooks[0][i] >> rooks[1][i];
        rooks[0][i]--;
        rooks[1][i]--;

        xmask[i] = ymask[i] = 0;
    }

    // setovanje maski
    for (int i = 0; i < n; i++) {
        xmask[rooks[0][i]]++;
        ymask[rooks[1][i]]++;
    }

    int resenje = 0;

    // sredjivanje po y osi;
    int mov = 0;
    for (int i = 0; i < n; i++) {
        // odlasci u lijevo
        if (!xmask[i]) {
            mov++;
            continue;
        }

        int j;
        if (mov) {
            for (int j = 1; j < mov; j++) {
                int z = j;
                while (xmask[i - z++]);
                xmask[i - j]++;
                resenje++;
            }
            xmask[i] -= j;
            mov -= j;
        }

        // radi za odlaske napred, i stajanje u mjestu
        for (j = 1; j < xmask[i]; j++) {
            int z = j;
            while (xmask[i + z++]);
            xmask[i + j]++;
            resenje++;
        }
        xmask[i] -= j;
    }

    // sredjivanje po x osi;
    mov = 0;
    for (int i = 0; i < n; i++) {
        // odlasci u lijevo
        if (!ymask[i]) {
            mov++;
            continue;
        }

        int j;
        if (mov) {
            for (int j = 1; j < mov; j++) {
                int z = j;
                while (ymask[i - z++]);
                ymask[i - j]++;
                resenje++;
            }
            ymask[i] -= j;
            mov -= j;
        }

        // radi za odlaske napred, i stajanje u mjestu
        for (j = 1; j < ymask[i]; j++) {
            int z = j;
            while (ymask[i + z++]);
            ymask[i + j]++;
            resenje++;
        }
        ymask[i] -= j;
    }

    cout << resenje;
}