output_description: If there exist no reorderings that satisfy the condition, print `No`.
  
  If there exists a reordering that satisfies the condition, print `Yes` on the
  first line. After that, print a reordering of B on the second line, separating
  terms with a whitespace.
  
  If there are multiple reorderings that satisfy the condition, you can print
  any of them.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 \cdots A_N
      B_1 B_2 \cdots B_N
attempt: import sys
  
  readline = sys.stdin.readline
  
  N = int(readline())
  A = list(map(int, readline().split()))
  B = list(map(int, readline().split()))
  
  from collections import Counter
  
  cA = Counter(A)
  cB = Counter(B)
  
  # 両チームに入っている文字の合計数が多い順に処理していく
  # heapqで、(両方に入っている個数, Bにいる個数, その数)
  # 使うごとに、1つ目、2つ目の要素を-1してもう一度heappush
  
  import heapq as hq
  
  q = []
  hq.heapify(q)
  for key, value in cB.items():
      if key in cA:
          hq.heappush(q, (-(value + cA[key]), value, key))
          if value + cA[key] > N:
              print("No")
              exit(0)
      else:
          hq.heappush(q, (-value, value, key))
  print("Yes")
  a_ind = 0
  ans = []
  
  while a_ind < N:
      keep = []
      while True:
          allcnt, bcnt, key = hq.heappop(q)
          allcnt *= -1
          if A[a_ind] == key:
              keep.append((allcnt, bcnt, key))
          else:
              ans.append(key)
              if bcnt - 1 > 0:
                  hq.heappush(q, (-(allcnt - 1), bcnt - 1, key))
              break
      for k in keep:
          hq.heappush(q, k)
      a_ind += 1
  
  print(*ans)
  
problem_description: Statement
  
  Given are two sequences A and B, both of length N. A and B are each sorted in
  the ascending order. Check if it is possible to reorder the terms of B so that
  for each i (1 \leq i \leq N) A_i \neq B_i holds, and if it is possible, output
  any of the reorderings that achieve it.
samples: [{"input": "6\n    1 1 1 2 2 3\n    1 1 1 2 2 3", "output": "Yes\n    2 2 3 1 1 1\n    \n\n* * *"}, {"input": "3\n    1 1 2\n    1 1 3", "output": "No\n    \n\n* * *"}, {"input": "4\n    1 1 2 3\n    1 2 3 3", "output": "Yes\n    3 3 1 2"}]