이상한 비트

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

올란디카 사람들은 이상한 컴퓨터를 발명했다. 이 컴퓨터에는 숫자를 저장하는 12비트 레지스터만 있으며, 받아들이는 명령은 SWAP 하나뿐이다. SWAP 함수는 세 개의 인자 $i$, $j$, $d$로 호출된다. swap(i, j, d)는 $i$번째 레지스터의 $j$번째 비트를 방향 $d$(0: 위, 1: 오른쪽, 2: 아래, 3: 왼쪽)에 있는 이웃 비트와 교환한다.

  • 오른쪽(1)과 왼쪽(3)은 같은 레지스터 안에서 이웃한 비트(각각 $j+1$번째, $j-1$번째 비트)를 가리킨다.
  • 위(0)와 아래(2)는 같은 비트 위치에서 이웃한 레지스터(각각 $i-1$번째, $i+1$번째 레지스터)를 가리킨다.

예를 들어 swap(2, 3, 1)은 2번째 레지스터의 3번째 비트와 4번째 비트를 교환하고, swap(6, 4, 2)는 6번째 레지스터와 7번째 레지스터의 4번째 비트를 교환한다.

올란디카 사람들은 레지스터들의 처음 값을 알고 있으며, 이를 다른 값들로 바꾸고 싶어 한다. 각 레지스터를 원하는 값으로 만들기 위해 필요한 SWAP 호출의 최소 횟수를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 레지스터의 개수 $n$ ($1 \le n \le 16$)이 주어진다. 다음 줄에는 $n$개의 정수가 주어지며, $i$번째 수는 $i$번째 레지스터의 처음 값이다. 그 다음 줄에도 $n$개의 정수가 주어지며, $i$번째 수는 $i$번째 레지스터의 목표 값이다. 각 레지스터 값은 12비트로 표현되는 $0$ 이상 $4095$ 이하의 정수이다. 입력은 $0$ 하나만 있는 줄로 끝난다.

출력

각 테스트 케이스에 대해, 필요한 SWAP의 최소 횟수를 한 줄에 출력한다. 목표 상태를 만드는 것이 불가능하면 Impossible을 출력한다.