Bajtek은 모바일 게임을 즐겨 합니다. 하지만 그는 다른 게임들의 광고가 자주 나타나는 것에 짜증을 느낍니다. 광고 속 플레이어는 게임을 매우 못하는데, 이는 보는 사람의 좌절감을 유발하고 직접 플레이하고 싶게 만들기 위한 것입니다. 그러한 광고 중 하나가 Bajtek의 기억에 특히 깊이 남았습니다.
모든 것에서 영감을 얻을 수 있듯이, Bajtek은 위의 게임을 바탕으로 문제를 만들기로 했습니다. 그는 $n \times m$ 크기의 목표 색상 판을 선택하고, 아무런 색이 칠해져 있지 않은 $n \times m$ 크기의 판으로 게임을 시작합니다. 한 번의 움직임으로 그는 행이나 열을 선택하고 그 안의 모든 칸을 자신이 선택한 색으로 칠할 수 있습니다(위의 그림에 나온 게임에서는 행과 열의 색상이 정해져 있었지만, 여기서는 더 큰 자유도가 주어진다는 점에 유의하세요). 문제를 공식화하기 위해 그는 모든 색상을 영어 대문자로 표시했습니다. 당신은 그를 도와 그가 설정한 각 판에 대해 목표 색상 배치를 올바르게 생성하는 움직임의 순서를 출력하는 프로그램을 작성할 수 있습니까? 입력으로 주어지는 판은 최대 $n + m$번의 움직임으로 목표를 달성할 수 있다고 가정해도 좋습니다.
입력
첫 번째 줄에는 판의 높이와 너비를 나타내는 두 정수 $n$과 $m$ ($1 \le n, m \le 2\,000$)이 주어집니다.
이어지는 $n$개의 각 줄에는 $m$개의 문자가 주어지며, 각 문자는 영어 대문자입니다. $i$번째 줄의 $j$번째 문자는 판의 $i$번째 행, $j$번째 열에 위치한 칸의 목표 색상을 나타냅니다.
주어진 색상 배치는 문제에 설명된 최대 $n + m$번의 움직임으로 달성할 수 있음이 보장됩니다.
출력
첫 번째 줄에는 수행할 움직임의 횟수 $r$ ($1 \le r \le n + m$)을 출력합니다. 이어지는 $r$개의 각 줄에는 움직임에 대한 설명을 출력합니다.
하나의 움직임에 대한 설명은 행을 칠할지 열을 칠할지를 나타내는 문자 'R' 또는 'K'로 시작해야 합니다('R'은 행, 'K'는 열을 의미함). 그 뒤에 공백을 하나 두고, 칠하고자 하는 행 또는 열의 번호를 출력합니다. 행은 위에서 아래로 $1$부터 $n$까지, 열은 왼쪽에서 오른쪽으로 $1$부터 $m$까지 번호를 매깁니다. 그 뒤에 공백을 하나 두고, 선택한 행 또는 열을 칠할 색상을 나타내는 영어 대문자 하나를 출력합니다.
움직임의 횟수를 최소화할 필요는 없으며, 최대 $n + m$번 이내로 수행하기만 하면 됩니다.
예제
입력 1
5 5 AAPAA APPAA AAPAA AAPAA APPPA
출력 1
10 R 1 Z K 4 A K 2 P R 5 P R 4 A R 3 A R 1 A K 5 A K 3 P K 1 A
입력 2
2 3 AAA PPP
출력 2
2 R 2 P R 1 A
참고
예제 설명: 첫 번째 예제 테스트에서 문자 'P'가 녹색, 'A'가 노란색, 'Z'가 파란색을 의미한다고 가정하면, 선택된 움직임의 순서는 다음과 같이 판을 칠합니다.
참고: 예제 설명: 첫 번째 예제 테스트에서 문자 'P'가 녹색, 'A'가 노란색, 'Z'가 파란색을 의미한다고 가정하면, 선택된 움직임의 순서는 다음과 같이 판을 칠합니다.