output_description: For each query, print "yes" if $t$ is reachable from $s$ through the social
  network, "no" otherwise.
input_description: In the first line, two integer $n$ and $m$ are given. $n$ is the number of
  users in the SNS and $m$ is the number of relations in the SNS. The users in
  the SNS are identified by IDs $0, 1, ..., n-1$.
  
  In the following $m$ lines, the relations are given. Each relation is given by
  two integers $s$ and $t$ that represents $s$ and $t$ are friends (and
  reachable each other).
  
  In the next line, the number of queries $q$ is given. In the following $q$
  lines, $q$ queries are given respectively. Each query consists of two integers
  $s$ and $t$ separated by a space character.
attempt: import sys
  from collections import defaultdict
  
  
  def main():
      lines = sys.stdin.readlines()
      n, m = map(int, lines[0].split())
      relation_lines = lines[1 : 1 + m]
  
      relations = defaultdict(list)
  
      for idx, relation_line in enumerate(relation_lines):
          s, t = relation_line.split()
          relations[s].append(t)
          relations[t].append(s)
  
      group = {}
      for key in relations.keys():
          group[key] = -1
      group_num = 0
  
      # assign a group number for ids
      for key, val in relations.items():
          if group[key] != -1:
              continue
  
          group[key] = group_num
          group_num += 1
  
          group_no = group[key]
          friends = [key]
  
          while len(friends) != 0:
              n_fs = relations[friends.pop()]
              for n_f in n_fs:
                  if group[n_f] == -1:
                      group[n_f] = group_no
                      friends.append(n_f)
  
      q = int(lines[1 + m])
      question_lines = lines[1 + m + 1 :]
      answers = [None] * q
      for i, question in enumerate(question_lines):
          s, t = question.split()
  
          if s not in group or t not in group:
              answers[i] = "no"
              continue
          elif group[s] == group[t]:
              answers[i] = "yes"
          else:
              answers[i] = "no"
  
      # answer
      [print(ans) for ans in answers]
      return
  
  
  main()
  
problem_description: Connected Components
  
  Write a program which reads relations in a SNS (Social Network Service), and
  judges that given pairs of users are reachable each other through the network.
samples: [{"input": "9\n    0 1\n    0 2\n    3 4\n    5 7\n    5 6\n    6 7\n    6 8\n    7 8\n    8 9\n    3\n    0 1\n    5 9\n    1 3", "output": "yes\n    yes\n    no"}]