# this code generate by ChatGPT import sys def find_permutation_order(original, modified): """ original: 1 から N の順列 modified: 並び替えられた順列 どの位置に移動したかを表す順列を返す """ N = len(original) perm = [0] * N pos = {value: idx for idx, value in enumerate(original)} # 各値の元の位置 for i in range(N): perm[i] = pos[modified[i]] + 1 # 1-based index return perm def apply_permutation(matrix, perm, axis): """ matrix の行または列を perm に従って並び替える axis = 0 (行を並び替え) axis = 1 (列を並び替え) """ N = len(matrix) new_matrix = [[0] * N for _ in range(N)] if axis == 0: # 行の並び替え for i in range(N): new_matrix[i] = matrix[perm[i] - 1] # 1-based index else: # 列の並び替え for i in range(N): for j in range(N): new_matrix[i][j] = matrix[i][perm[j] - 1] # 1-based index return new_matrix def solve(N, K, A, B): operations = [] # 各行・各列の順列を取得 row_permutations = [find_permutation_order(B[i], A[i]) for i in range(N)] col_permutations = [find_permutation_order([B[i][j] for i in range(N)], [A[i][j] for i in range(N)]) for j in range(N)] # 逆操作を適用 for i in range(N): if row_permutations[i] != list(range(1, N + 1)): # 元の順序でないなら operations.append(f"R {i + 1}") B = apply_permutation(B, row_permutations[i], axis=0) for j in range(N): if col_permutations[j] != list(range(1, N + 1)): # 元の順序でないなら operations.append(f"C {j + 1}") B = apply_permutation(B, col_permutations[j], axis=1) # 出力 print(len(operations)) for op in operations: print(op) if __name__ == "__main__": # 入力 N, K = map(int, sys.stdin.readline().split()) A = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] B = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] # 解く solve(N, K, A, B)