package com.snnu;
import java.util.HashMap;
import java.util.Scanner;
public class union_find {
static int maxn = 100000;
static int[] disjointSet = new int[maxn];
static int len;
static int initVal = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
HashMap<String, Integer> map = new HashMap<>();
len = N;
initData();
for (int i = 0; i < N; i++) {
int op = in.nextInt();
String name1 = in.next();
String name2 = in.next();
int fatherx, fathery;
if(op == 0) {
if (!map.containsKey(name1)) {
map.put(name1, initVal++);
}
if (!map.containsKey(name2)) {
map.put(name2, initVal++);
}
fatherx = find(map.get(name1));
fathery = find(map.get(name2));
if( fatherx != fathery){
union(fatherx, fathery);
}
}else {
fatherx = find(map.get(name1));
fathery = find(map.get(name2));
if(fatherx == fathery){
System.out.println("yes");
}else {
System.out.println("no");
}
}
}
}
private static void union(int x, int y) {
disjointSet[x] = y;
}
private static int find(int val){
while (val != disjointSet[val]){
val = disjointSet[val];
}
return val;
}
private static void initData() {
for (int i = 0; i < len; i++) {
disjointSet[i] = i;
}
initVal = 0;
}
}
02-02
1351