#include <iostream>

using namespace std;

int main()
{
    int n;
    int q;
    int poc;
    int kraj;
    int pl;
    int pr;
    int x;
    int idOperacije;
    int spisak[4000];
    int duzinaPuta[4000][4000];
    
    cin >> n;
    
    for(int i = 0; i < n; i++)
    {
        cin >> spisak[i];
        for(int j = 0; j < n; j++)
        {
            duzinaPuta[i][j] = 0;
        }
    }
    
    for(int i = 0; i < n; i++)
    {
        cin >> poc >> kraj;
        
        duzinaPuta[poc][kraj] = 1;
        duzinaPuta[kraj][poc] = 1;
        
        for(int j = 0; j < n; j++)
        {
            if(duzinaPuta[poc][j] > 0)
            {
                duzinaPuta[kraj][j] = duzinaPuta[poc][j] + 1;
                duzinaPuta[j][kraj] = duzinaPuta[poc][j] + 1;
            }
            
            if(duzinaPuta[kraj][j] > 0)
            {
                duzinaPuta[poc][j] = duzinaPuta[kraj][j] + 1;
                duzinaPuta[j][poc] = duzinaPuta[kraj][j] + 1;
            }
        }
    }
    
    cin >> q;
    
    for(int i = 0; i < q; i++)
    {
        cin >> idOperacije;
        if(idOperacije == 1)
        {
            cin >> pl >> pr;
            int pom = spisak[pl];
            spisak[pl] = spisak[pr];
            spisak[pr] = pom;
        }
        else
        {
            cin >> pl >> pr >> x;
            int min = duzinaPuta[pl][x];
            for(int i = pl + 1; i <= pr; i++)
            {
                if(duzinaPuta[i][x] < min)
                {
                    min = duzinaPuta[i][x];
                }
            }
            cout << min << endl;
        }
    }
    
    return 0;
}