조명기구

시간 제한2초메모리 제한128 MB

문제

철수는 전등이 N × M 격자 모양으로 배치된 조명기구를 가지고 있다. 각 전등은 빨간색 또는 하얀색 중 하나이다. 조명감독인 철수는 다음 두 종류의 버튼으로 조명기구의 상태를 바꿀 수 있다.

  • 각 행에는 행 버튼이 하나씩 있다. 행 버튼을 누르면 그 행에 있는 모든 전등의 색이 바뀐다. 빨간색은 하얀색으로, 하얀색은 빨간색으로 바뀐다.
  • 각 열에는 열 버튼이 하나씩 있다. 서로 다른 두 열 버튼을 동시에 누르면 두 열 전체가 전등의 순서를 유지한 채 서로 교환된다.

예를 들어, 아래 (a)처럼 4 × 5 격자의 조명기구가 있다고 하자. 0은 하얀색, 1은 빨간색을 나타낸다. (a)에서 두 번째 행 버튼을 누르면 (b)가 되고, 이어서 두 번째 열과 네 번째 열 버튼을 동시에 누르면 두 열이 교환되어 (c)가 된다.

```
01001
10110
01110
10101
``````
01001
01001
01110
10111
``````
00011
00011
01110
11101
| (a)                             | (b)                             | (c)                             |

초기 전등 색과 목표 전등 색이 주어질 때, 행 버튼과 열 버튼을 사용해 초기 상태를 목표 상태로 바꾸는 연산 순서를 구하시오.

입력

첫째 줄에 조명기구의 행 수 N과 열 수 M이 공백으로 구분되어 주어진다.

다음 N개의 줄에는 초기 상태가 주어진다. 각 줄에는 해당 행의 전등 색을 나타내는 M개의 수가 주어진다.

그다음 N개의 줄에는 목표 상태가 같은 형식으로 주어진다.

각 수는 0 또는 1이다. 0은 하얀색, 1은 빨간색을 의미한다.

출력

초기 상태를 목표 상태로 바꿀 수 없으면 첫째 줄에 -1을 출력한다.

바꿀 수 있다면, 첫째 줄에 사용할 연산 수 S를 출력한다. S는 행 버튼을 눌러 행의 색을 바꾸는 횟수 R과, 두 열 버튼을 동시에 눌러 열을 교환하는 횟수 C의 합이다.

이어서 S개의 줄에 연산을 수행할 순서대로 출력한다.

  • i번 행 버튼을 눌러 그 행의 색을 바꾸는 연산은 0 i로 출력한다.
  • i번 열과 j번 열을 교환하는 연산은 1 i j로 출력한다.

하나의 행 버튼은 최대 두 번까지 누를 수 있고, 같은 두 열 버튼의 조합도 최대 두 번까지 누를 수 있다.

제한

  • 1 ≤ N ≤ 256
  • 1 ≤ M ≤ 256