이 문제는 Finite Array Swaps와 굵은 글씨로 적힌 부분과 입출력만 다릅니다.
동우는 길이가 $N$인 두 배열 $A=\left[ A_1,A_2,\cdots ,A_N \right]$과 $B=\left[ B_1,B_2,\cdots ,B_N \right]$을 가지고 있다.
동우는 두 배열에 다음 두 시행을 각각 원하는 만큼 할 수 있다. 교환하는 두 원소의 인덱스는 달라야 한다.
이 연산을 통해 얻은 최종 상태에서의 두 배열을 $A^\prime=\left[ A_1^\prime,A_2^\prime,\cdots ,A_N^\prime \right]$과 $B^\prime=\left[ B_1^\prime,B_2^\prime,\cdots ,B_N^\prime \right]$이라 할 때, 동우는 $A_i^\prime=B_i^\prime$를 만족하는 쌍의 개수를 최대화하려고 한다. 두 배열이 주어질 때, 이를 최대로 하는 교환을 찾아보자.
첫 번째 줄에 두 배열의 길이 $N(1\le N\le 10^5)$이 주어진다.
두 번째 줄에 배열 $A$의 원소 $A_1,A_2,\cdots ,A_N(1\le A_i\le 10^9)$이 공백으로 구분되어 주어진다.
세 번째 줄에 배열 $B$의 원소 $B_1,B_2,\cdots ,B_N(1\le B_i\le 10^9)$이 공백으로 구분되어 주어진다.
주어지는 입력은 모두 정수이다.
첫 번째 줄에 $A_i^\prime=B_i^\prime$를 만족하는 쌍의 개수의 최댓값을 출력한다.
두 번째 줄에 최종 상태에서의 배열 $A^\prime$의 원소 $A_1^\prime,A_2^\prime,\cdots ,A_N^\prime$을 공백으로 구분하여 출력한다.
세 번째 줄에 최종 상태에서의 배열 $B^\prime$의 원소 $B_1^\prime,B_2^\prime,\cdots ,B_N^\prime$을 공백으로 구분하여 출력한다.
가능한 정답이 여러 개라면 아무거나 하나 출력한다.