output_description: Print N integers. The i-th of them should represent the number of the cities
  connected to the i-th city by both roads and railways.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N K L
      p_1 q_1
      :
      p_K q_K
      r_1 s_1
      :
      r_L s_L
attempt: #Union-Find木の構築
  import sys
  def 解():
      iN,iK,iL = [int(_) for _ in input().split()]
      aD = [[int(_) for _ in sLine.split()] for sLine in sys.stdin.readlines()]
  
      def buildTree(a):
          aT = [0]*(iN+1)
          for p,q in a:
              #if p > q :
              #   p,q = q,p
              thisroot = max(aT[q],aT[p],q) #試しにデカい方に合わせる
              if p <= aT[q] < thisroot:  #2個づつ来るからこんなんでいいだろ
                  aT[aT[q]] = thisroot
              if p <= aT[p] < thisroot:
                  aT[aT[p]] = thisroot
              aT[q] = thisroot
              aT[p] = thisroot
          return aT
      def getRoot(a,i):
          if a[i] == i or a[i] == 0:
              if a[i] == 0 : a[i] = i
              return i
          elif i < a[i] :
              a[i] = getRoot(a,a[i])
              return a[i]
          else:
          #   print("! ",i,a[i])
  
      aT道 = buildTree(aD[0:iK])
      aT鉄道 = buildTree(aD[iK:])
      aRet = []
      dRet = {}
      for i in range(1,iN+1):
          # いやはやこんなもんもキーになるのか。
          Comb = (getRoot(aT道,i), getRoot(aT鉄道,i))
          aRet.append(Comb)
          if Comb in dRet:
              dRet[Comb] += 1
          else:
              dRet[Comb] = 1
      print(" ".join([str(dRet[_]) for _ in aRet]))
  
  解()
  
problem_description: Statement
  
  There are N cities. There are also K roads and L railways, extending between
  the cities. The i-th road bidirectionally connects the p_i-th and q_i-th
  cities, and the i-th railway bidirectionally connects the r_i-th and s_i-th
  cities. No two roads connect the same pair of cities. Similarly, no two
  railways connect the same pair of cities.
  
  We will say city A and B are _connected by roads_ if city B is reachable from
  city A by traversing some number of roads. Here, any city is considered to be
  connected to itself by roads. We will also define _connectivity by railways_
  similarly.
  
  For each city, find the number of the cities connected to that city by both
  roads and railways.
samples: [{"input": "4 3 1\n    1 2\n    2 3\n    3 4\n    2 3", "output": "1 2 2 1\n    \n\nAll the four cities are connected to each other by roads.\n\nBy railways, only the second and third cities are connected. Thus, the answers\nfor the cities are 1, 2, 2 and 1, respectively.\n\n* * *"}, {"input": "4 2 2\n    1 2\n    2 3\n    1 4\n    2 3", "output": "1 2 2 1\n    \n\n* * *"}, {"input": "7 4 4\n    1 2\n    2 3\n    2 5\n    6 7\n    3 5\n    4 5\n    3 4\n    6 7", "output": "1 1 2 1 2 2 2"}]