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: from collections import Counter, deque
  from random import randint
  
  N = int(input())
  A = list(map(int, input().split()))
  B = list(map(int, input().split()))
  
  CA = Counter(A)
  CB = Counter(B)
  keys = set(A + B)
  M = 0
  for k in keys:
      M = max(M, CA[k] + CB[k])
  
  if M > N:
      print("No")
      exit()
  
  CB = CB.most_common()
  L, R = [], []
  for i, x in enumerate(CB):
      if i % 2 == 0:
          L.append(list(x))
      else:
          R.append(list(x))
  X = deque(L + R[::-1])
  
  y = L + R
  ans = [None] * N
  for i in range(N):
      if (X[0][0] != A[i]) and (X[-1][0] != A[i]):
          if X[0][1] > X[-1][1]:
              ans[i] = X[0][0]
              X[0][1] -= 1
              if X[0][1] == 0:
                  X.popleft()
          else:
              ans[i] = X[-1][0]
              X[-1][1] -= 1
              if X[-1][1] == 0:
                  X.pop()
  
      elif X[0][0] != A[i]:
          ans[i] = X[0][0]
          X[0][1] -= 1
          if X[0][1] == 0:
              X.popleft()
      else:
          ans[i] = X[-1][0]
          X[-1][1] -= 1
          if X[-1][1] == 0:
              X.pop()
  
  
  for i in range(10):
      m = randint(0, N - 1)
      for i in range(N):
          if ans[i] != A[i]:
              continue
          ans[i], ans[m] = ans[m], ans[i]
          m += 1
          m %= N
  print("Yes")
  print(*ans, sep=" ")
  
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"}]