9 5 14
7 1 4 8 5 2 6 9 3
2 8
1 6
5 7
1 3
3 9
1 5
1 8
1 5
1 4
1 8
1 3
1 5
1 5
1 7
1 7
2 3
1 2
1 1
1 2
 6 5 8
1 2 6 3 4 5
2 4
1 3
1 6
3 5
2 5
1 1
1 4
1 1
2 1
2 5
2 2
2 3
1 4
 2 1 3
1 2
1 2
1 1
1 1
1 1

6
9
5
8
1
7
0
0
0
0
0
4
0
 6
5
4
3
 2
1
0

import java.util.*;

public class Solution {

    public static void main(String[] args)  {
    	Scanner sc = new Scanner(System.in);
    	int n = sc.nextInt();
    	int m = sc.nextInt();
    	int q = sc.nextInt();
    	int p[] = new int[n];
    	List<List<Integer>> edges = new ArrayList<List<Integer>>(n);
    	int q1, q2;
    	int[][] edge_arr = new int[m][2];
    	
    	for(int i = 0; i < n; i++) {
    		p[i] = sc.nextInt();
    		edges.add(new ArrayList<>());
    	}
    	
    	for(int i = 0; i < m; i++) {
    		int a = sc.nextInt();
    		int b = sc.nextInt();
    		edge_arr[i][0] = a;
    		edge_arr[i][1] = b;
    		edges.get(a-1).add(b);
    		edges.get(b-1).add(a);
    	}
    	
    	for(int i = 0; i < q; i++) {
    		q1 = sc.nextInt();
    		q2 = sc.nextInt();
    		
    		if(q1 == 1) {
    			List<Integer> temp = edges.get(q2-1);
    			int max_val = p[q2-1];
    			int max_idx = q2-1;
    			for(int j = 0; j < temp.size(); j++) {
    				if(p[temp.get(j)-1] > max_val) {
    					max_val = p[temp.get(j)-1];
    					max_idx = temp.get(j)-1;
    				}
    			}
    			p[max_idx] = 0;
    			System.out.println(max_val);
    		} else {
    			int e1 = edge_arr[q2-1][0];
    			int e2 = edge_arr[q2-1][1];
    			List<Integer> temp = edges.get(e1-1);
    			for(int j = 0; j < temp.size(); j++)
    				if(temp.get(j) == e2)
    					temp.remove(j);
    			temp = edges.get(e2-1);
    			for(int j = 0; j < temp.size(); j++)
    				if(temp.get(j) == e1)
    					temp.remove(j);
    			
    		}
    	}
    	sc.close();
    }
}
