간단한 퍼즐을 하나 보자. 아래 그림에서 막대 하나를 옮겨 등식을 옳게 만들면 된다.

쉬운 문제다. 답은 아래와 같다.

이런 퍼즐을 푸는 프로그램을 작성하라. 규칙은 다음과 같다.

| 숫자 | 사용하는 획 |
|---|---|
| 0 | 위, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 아래 |
| 1 | 오른쪽 위, 오른쪽 아래 |
| 2 | 위, 오른쪽 위, 가운데, 왼쪽 아래, 아래 |
| 3 | 위, 오른쪽 위, 가운데, 오른쪽 아래, 아래 |
| 4 | 왼쪽 위, 오른쪽 위, 가운데, 오른쪽 아래 |
| 5 | 위, 왼쪽 위, 가운데, 오른쪽 아래, 아래 |
| 6 | 위, 왼쪽 위, 가운데, 왼쪽 아래, 오른쪽 아래, 아래 |
| 7 | 위, 오른쪽 위, 오른쪽 아래 |
| 8 | 일곱 획 전부 |
| 9 | 위, 왼쪽 위, 오른쪽 위, 가운데, 오른쪽 아래 |
입력은 퍼즐 하나 이상으로 이루어진다. 퍼즐 하나는 한 줄에 다음 형식으로 주어진다.
A ⊙ B = R (n)
A, B, R은 한 자리 이상 아홉 자리 이하의 숫자열이다. ⊙은 +, -, *, / 네 연산자 중 하나다. n은 옮겨야 할 막대의 개수를 나타내는 자연수다. A, ⊙, B, =, R, (n) 사이는 공백 한 칸 이상으로 구분한다.
입력의 끝은 EOF라는 단어만 적힌 줄로 표시한다. 따옴표는 붙이지 않는다.
퍼즐마다 한 줄씩 출력한다.
k.␣result
k는 1부터 세는 퍼즐 번호이고, ␣는 공백 한 칸, result는 퍼즐을 푼 뒤의 등식이다. result에는 공백을 넣지 않는다. 답이 여러 개면 사전순으로 가장 앞서는 답을 출력한다. 즉 왼쪽 피연산자가 가장 작은 답을 고르고, 그런 답이 여럿이면 그중 오른쪽 피연산자가 가장 작은 답을 고른다. 풀 수 없는 퍼즐이면 result 자리에 UNSOLVABLE을 적는다. 따옴표는 붙이지 않는다.