10 3 5
1 2
2 3
1 4
2 3 6
1 6
2 1 6
2 8 7
1 10
 10 2 6
1 2
1 3
2 1 8
2 9 2
1 2
1 9
2 3 5
1 8
 10 5 2
1 2
1 3
1 4
2 5
1 6
1 5
1 8
 10 6 64
1 2
2 3
2 4
4 5
3 6
3 7
2 4 4
1 4
1 6
1 5
1 8
2 1 10
2 6 8
2 4 2
1 10
1 6
2 4 3
2 5 9
1 4
2 8 7
2 3 6
2 8 5
2 7 3
2 10 7
2 9 3
1 8
2 7 5
2 6 10
2 5 9
1 10
2 8 9
1 2
2 9 10
2 5 1
2 10 1
2 3 9
2 10 2
2 5 4
1 1
1 5
2 7 5
1 7
2 9 5
2 8 2
1 3
1 10
2 8 8
2 8 2
2 9 8
2 7 10
1 1
1 6
2 1 6
1 2
1 10
2 6 4
1 3
2 6 6
2 10 3
2 3 5
1 2
2 1 7
2 4 4
1 9
1 10
1 5
2 8 3
1 6
1 4
1 8
 10 9 16
1 2
1 3
2 4
2 5
4 6
4 7
6 8
4 9
5 10
2 1 5
2 4 4
1 7
1 8
1 6
1 4
1 10
1 4
2 1 5
2 8 10
2 5 5
2 7 3
2 8 7
2 7 7
2 7 3
2 4 6
 10 5 42
1 2
1 3
2 4
4 5
1 6
1 4
2 9 2
2 10 5
1 4
2 2 7
2 10 5
2 6 10
1 4
1 4
1 2
2 7 8
1 7
2 4 4
2 10 6
2 9 3
1 9
1 2
2 8 1
1 8
2 3 5
1 8
2 5 5
2 2 7
2 8 5
1 9
1 1
2 4 4
2 6 6
2 1 7
1 6
2 8 3
2 7 4
1 8
2 3 6
2 8 6
2 3 6
2 9 3
1 3
1 9
2 3 7
1 2
1 7
 100 22 4
100 24
100 27
100 4
100 60
24 63
63 17
27 89
17 71
63 77
77 43
63 9
100 65
24 14
27 15
60 10
71 16
100 67
10 1
1 40
10 83
43 66
67 18
1 6
1 27
1 6
1 49
 10 7 48
1 2
2 3
2 4
3 5
4 6
6 7
7 8
2 7 4
1 2
2 7 4
1 2
2 5 6
2 3 4
1 8
2 4 4
2 10 3
2 1 3
1 10
1 8
2 2 7
2 2 9
1 10
2 6 7
2 3 6
2 8 1
2 2 6
1 7
2 1 2
1 3
2 4 1
2 5 6
2 7 1
2 4 2
2 1 9
2 6 9
2 6 1
1 1
1 2
1 1
2 2 3
1 4
2 2 2
2 4 7
2 5 5
2 5 7
1 5
2 8 7
1 9
2 10 9
1 9
2 6 6
2 1 1
2 3 3
1 9
2 7 4
 10 4 4
1 2
1 3
3 4
2 5
1 5
1 2
1 3
1 5
 10 7 7
1 2
1 3
2 4
2 5
4 6
5 7
3 8
2 4 7
2 6 4
1 2
2 10 3
1 9
1 8
1 8
 10 5 10
1 2
1 3
3 4
2 5
1 6
2 7 3
1 5
2 3 4
1 3
1 8
1 8
1 8
1 9
2 5 3
2 6 5
 10 1 14
1 2
1 1
1 8
1 9
2 2 5
1 9
1 6
2 10 9
2 4 8
1 4
2 1 10
2 2 4
1 10
2 8 10
2 7 4
 100 10 30
58 81
58 7
58 74
74 97
81 56
81 15
15 49
97 45
97 47
58 34
2 52 44
2 55 79
2 52 5
1 48
2 60 35
2 37 82
2 77 52
2 9 23
2 25 61
2 63 34
1 81
2 47 20
1 79
2 34 19
1 70
1 36
2 27 85
2 52 89
1 25
2 46 46
1 52
1 33
1 70
2 29 56
2 3 73
2 37 46
2 29 83
1 1
1 4
1 45
 10 8 43
1 2
2 3
3 4
2 5
1 6
3 7
7 8
3 9
2 1 6
2 2 8
1 8
2 2 6
1 8
2 1 7
2 9 5
2 9 4
2 7 10
2 10 3
2 1 5
2 6 9
2 6 10
2 3 3
1 1
2 7 5
2 6 2
2 2 5
2 3 9
1 3
2 8 7
1 9
1 3
2 6 9
1 7
1 10
2 10 3
2 10 2
2 5 7
2 10 5
1 10
1 7
1 10
1 2
1 6
2 3 10
1 3
1 5
1 6
1 5
1 8
1 7
2 5 8
 10 3 11
1 2
1 3
2 4
1 2
2 1 1
2 7 9
2 3 2
2 2 7
2 2 5
1 6
2 7 4
1 7
2 9 1
2 9 2
 10 5 6
1 2
2 3
2 4
4 5
1 6
2 3 1
2 6 4
2 1 1
1 5
1 6
1 4
 10 6 7
1 2
2 3
1 4
3 5
1 6
5 7
1 1
2 8 10
1 10
2 9 5
1 7
1 4
2 1 9
 100 16 46
36 42
36 50
42 54
42 74
50 58
42 16
50 81
50 96
42 62
54 2
74 75
74 22
2 48
50 95
74 66
75 5
1 62
1 56
2 6 68
1 47
1 43
1 38
1 75
2 22 82
2 56 77
1 71
2 52 15
2 9 1
2 12 59
1 24
2 41 94
2 18 58
2 22 67
1 45
2 68 70
1 81
1 48
1 71
2 76 28
2 31 73
2 58 80
2 100 57
2 88 79
1 30
2 96 23
2 92 44
1 12
1 66
1 24
2 71 68
2 4 4
2 84 43
2 80 15
2 54 13
1 51
2 99 17
1 63
2 12 41
2 1 2
2 62 96
2 79 9
2 59 79
 10 1 9
1 2
1 5
2 7 4
1 4
1 7
2 2 5
2 6 3
1 3
1 4
1 2
 10 5 77
1 2
1 3
3 4
1 5
5 6
1 2
2 3 10
2 5 1
1 2
1 4
2 7 7
2 7 9
1 7
2 4 9
2 2 4
2 3 2
2 5 2
2 10 1
2 3 8
1 9
1 4
1 2
2 8 3
2 8 2
2 2 3
2 5 9
1 10
2 3 10
2 5 9
1 2
1 7
1 4
1 4
1 3
1 4
1 10
2 8 7
1 2
2 3 1
1 10
2 7 7
1 2
1 5
1 3
1 8
2 7 7
1 10
2 4 2
1 9
2 6 6
1 3
1 2
2 8 10
1 1
1 7
2 10 7
1 8
1 9
2 1 4
2 1 1
2 3 3
1 9
1 8
2 9 4
1 4
2 4 4
1 6
2 9 4
2 5 10
1 4
2 8 9
1 10
1 4
1 4
1 10
1 2
1 4
1 7
2 10 8
1 2
2 6 6
2 8 5
 10 4 46
1 2
2 3
1 4
2 5
1 5
1 9
2 6 8
2 10 8
1 1
1 5
1 1
2 6 6
1 8
2 9 3
1 2
1 5
1 2
2 6 5
1 2
1 6
2 5 3
1 5
2 10 5
1 5
2 6 10
2 2 3
2 7 9
2 8 9
1 8
1 3
2 7 1
2 2 2
1 2
1 1
1 5
2 8 7
1 3
1 4
1 3
2 3 1
2 8 8
1 10
1 9
1 10
2 7 10
2 8 9
1 4
2 8 9
1 5
2 6 9
 10 7 26
1 2
2 3
3 4
3 5
4 6
2 7
5 8
2 7 10
1 3
2 8 5
2 9 4
2 5 1
1 5
1 8
1 10
1 3
1 9
1 6
2 1 9
2 5 7
2 1 4
1 6
2 6 7
1 3
1 1
1 3
1 2
2 8 3
2 2 5
1 1
2 7 7
2 5 1
2 1 8
 10 6 21
1 2
2 3
2 4
2 5
4 6
2 7
2 4 1
1 1
2 5 1
1 5
1 3
1 3
1 10
1 5
1 7
1 4
2 6 3
2 7 4
1 10
2 2 5
1 1
1 5
1 8
2 5 7
1 3
2 2 9
1 7

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

//                I know stuff but probably my rating tells otherwise...

//                  Love is no stone, it's soft... more like snow
//                        beautifying everything it covers
//                        And when it falls... you listen

//               Kya hua, code samajhne ki koshish kar rhe ho?? Mat karo,
//                      mujhe bhi samajh nhi aata kya likha hai


import java.io.*;
import java.util.*;

import static java.lang.Math.*;

public class _455C {

      static data[] dsu;

      static void Mangni_ke_bail_ke_dant_na_dekhal_jye() {

            n = ni();
            m = ni();
            t = ni();

            dsu = new data[n + 1];

            for (int i = 1; i <= n; i++) {

                  dsu[i] = new data(i, 0);
            }

            for (int i = 1; i <= m; i++)
                  union(ni(), ni());


            while (t-- > 0) {
                  if (ni() == 2) union(ni(), ni());
                  else pl(findlength(ni()));
                  //pl(Arrays.toString(dsu));
            }

      }

      static int findlength(int x) {
            return dsu[find_father(x)].len;
      }

      static void union(int x, int y){
            x = find_father(x);
            y = find_father(y);

            dsu[y].baap = x;

            int x_len = dsu[x].len;
            int y_len = dsu[y].len;
            int tot_len = 0;

            x_len = (x_len + 1) >> 1;
            y_len = (y_len + 1) >> 1;
            tot_len = x_len + y_len + 1;

            dsu[x].len = max(dsu[x].len, max(dsu[y].len, tot_len));
       }

      static int find_father(int x) {
            return dsu[x].baap == x ? x : find_father(dsu[x].baap);
      }

      static class data{
            int baap, len;
            data(int a, int b){
                  baap = a;
                  len = b;
            }
            public String toString(){
                  return "{"+baap+", "+len+"}";
            }
      }


      //----------------------------------------The main code ends here------------------------------------------------------
      /*-------------------------------------------------------------------------------------------------------------------*/
      //-----------------------------------------Rest's all dust-------------------------------------------------------------


      static int mod9 = 1_000_000_007;
      static int n, m, l, k, t;
      static AwesomeInput input;
      static PrintWriter pw;

      static long power(long a, long b) {
            long x = max(a, b);
            if (b == 0) return 1;
            if ((b & 1) == 1) return a * power(a * a, b >> 1);
            return power(a * a, b >> 1);
      }

      static long modpow(long a, long b, long m) {
            if (b == 0) return 1;

            if ((b & 1) == 1) return a * modpow(a * a % m, b >> 1, m) % m;
            return modpow(a * a % m, b >> 1, m) % m;
      }

      // The Awesome Input Code is a fast IO method //
      static class AwesomeInput {
            private InputStream letsDoIT;
            private byte[] buf = new byte[1024];
            private int curChar;
            private int numChars;
            private SpaceCharFilter filter;

            private AwesomeInput(InputStream incoming) {
                  this.letsDoIT = incoming;
            }

            public int read() {
                  if (numChars == -1)
                        throw new InputMismatchException();
                  if (curChar >= numChars) {
                        curChar = 0;
                        try {
                              numChars = letsDoIT.read(buf);
                        } catch (IOException e) {
                              throw new InputMismatchException();
                        }
                        if (numChars <= 0)
                              return -1;
                  }
                  return buf[curChar++];
            }

            private long ForLong() {
                  int c = read();
                  while (isSpaceChar(c))
                        c = read();
                  int sgn = 1;
                  if (c == '-') {
                        sgn = -1;
                        c = read();
                  }
                  long res = 0;
                  do {
                        if (c < '0' || c > '9')
                              throw new InputMismatchException();
                        res *= 10;
                        res += c - '0';
                        c = read();
                  }
                  while (!isSpaceChar(c));
                  return res * sgn;
            }

            private String ForString() {
                  int c = read();
                  while (isSpaceChar(c))
                        c = read();
                  StringBuilder res = new StringBuilder();
                  do {
                        res.appendCodePoint(c);
                        c = read();
                  }
                  while (!isSpaceChar(c));

                  return res.toString();
            }

            public boolean isSpaceChar(int c) {
                  if (filter != null)
                        return filter.isSpaceChar(c);
                  return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
            }

            public interface SpaceCharFilter {
                  boolean isSpaceChar(int ch);
            }
      }

      // functions to take input//
      static int ni() {
            return (int) input.ForLong();
      }

      static String ns() {
            return input.ForString();
      }

      static long nl() {
            return input.ForLong();
      }

      //functions to give output
      static void pl() {
            pw.println();
      }

      static void p(Object o) {
            pw.print(o + " ");
      }

      static void pws(Object o) {
            pw.print(o + "");
      }

      static void pl(Object o) {
            pw.println(o);
      }

      // Fast Sort is Radix Sort
      public static int[] fastSort(int[] f) {
            int n = f.length;
            int[] to = new int[n];
            {
                  int[] b = new int[65537];
                  for (int i = 0; i < n; i++) b[1 + (f[i] & 0xffff)]++;
                  for (int i = 1; i <= 65536; i++) b[i] += b[i - 1];
                  for (int i = 0; i < n; i++) to[b[f[i] & 0xffff]++] = f[i];
                  int[] d = f;
                  f = to;
                  to = d;
            }
            {
                  int[] b = new int[65537];
                  for (int i = 0; i < n; i++) b[1 + (f[i] >>> 16)]++;
                  for (int i = 1; i <= 65536; i++) b[i] += b[i - 1];
                  for (int i = 0; i < n; i++) to[b[f[i] >>> 16]++] = f[i];
                  int[] d = f;
                  f = to;
                  to = d;
            }
            return f;
      }

      public static void main(String[] args) {      //threading has been used to increase the stack size.
            try {
                  input = new AwesomeInput(System.in);
                  pw = new PrintWriter(System.out, true);
                  input = new AwesomeInput(new FileInputStream("/home/saurabh/Desktop/input.txt"));
                  pw = new PrintWriter(new BufferedWriter(new FileWriter("/home/saurabh/Desktop/output.txt")), true);

            } catch (Exception e) {
            }

            new Thread(null, null, "AApan_gand_hawai_dusar_ke_kare_dawai", 1 << 25)  //the last parameter is stack size desired.
            {
                  public void run() {
                        try {
                              double s = System.currentTimeMillis();
                              Mangni_ke_bail_ke_dant_na_dekhal_jye();
                              //System.out.println(("\nExecution Time : " + ((double) System.currentTimeMillis() - s) / 1000) + " s");
                              pw.flush();
                              pw.close();
                        } catch (Exception e) {
                              e.printStackTrace();
                              System.exit(1);
                        }
                  }
            }.start();
      }
}