import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Bosses {

	int typeOfQuestion;
	int n, m;

	Node head = null;
	Node[] nodeArray;

	class Node {
		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + getOuterType().hashCode();
			result = prime * result + number;
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			Node other = (Node) obj;
			if (!getOuterType().equals(other.getOuterType()))
				return false;
			if (number != other.number)
				return false;
			return true;
		}

		@Override
		public String toString() {
			return number + "";
		}

		int number;
		Node next;

		public Node(int n) {
			number = n;
		}

		private Bosses getOuterType() {
			return Bosses.this;
		}
	}

	public Bosses() {
		Scanner in = new Scanner(System.in);

		n = in.nextInt();
		m = in.nextInt();
		nodeArray = new Node[n + 1];
		nodeArray[1] = new Node(1);
		nodeArray[1].next = null;
		for (int i = 1; i < n; i++) {
			Integer node1 = in.nextInt();
			Integer node2 = in.nextInt();

			if (nodeArray[node1] == null)
				nodeArray[node1] = new Node(node1);
			if (nodeArray[node2] == null)
				nodeArray[node2] = new Node(node2);
			nodeArray[node1].next = nodeArray[node2];

		}
		becomeBoss(nodeArray[1]);
		for (int i = 1; i <= m; i++) {
			typeOfQuestion = in.nextInt();
			if (typeOfQuestion == 1) {
				// devin boss
				int node1 = in.nextInt();

				becomeBoss(nodeArray[node1]);
			} else {
				int node1 = in.nextInt();
				int node2 = in.nextInt();
				resolveConflict(nodeArray[node1], nodeArray[node2]);
			}

		}
	}

	public void becomeBoss(Node node) {
		if (node.next == null)
			return;

		Node nodeNext = node.next;
		changeRelation(node, nodeNext);
		node.next = null;
	}

	public void changeRelation(Node node, Node nodeNext) {
		if (nodeNext == null)
			return;
		Node newNode = nodeNext.next;
		nodeNext.next = node;
		changeRelation(nodeNext, newNode);
	}

	public void resolveConflict(Node node1, Node node2) {
		Set<Node> hashSet = new HashSet<Node>();
		Node copyNode1 = node1;
		hashSet.add(node1);
		while (node1.next != null) {
			hashSet.add(node1.next);
			node1 = node1.next;
		}
		if (hashSet.contains(node2)) {
			System.out.println("-1");
			return;
		}

		while (node2.next != null) {
			node2 = node2.next;
			if (node2 == copyNode1) {
				System.out.println("-1");
				return;
			}
			if (hashSet.contains(node2)) {
				System.out.println(node2);
				return;
			}
		}
		System.out.println("-1");
	}

	public static void main(String[] args) {
		new Bosses();
	}

}