#include <bits/stdc++.h>
using namespace std;
const long long size = 311002;
const long long mod = 1000000007;
void PLL(initializer_list<long long> li) {
  for (auto beg = li.begin(); beg != li.end(); beg++) {
    if (beg != li.begin()) cout << ' ';
    cout << *beg;
  }
  cout << endl;
}
class X {
 public:
  int a;
  X(const X &x) {
    cout << "233" << endl;
    a = x.a;
  }
  X() { cout << "111" << endl; }
  X(X &&x) { cout << "333" << endl; }
  ~X() { cout << (555) << endl; }
};
X &&fun() {
  X a;
  return move(a);
}
char ch[51][51];
int n, m;
void fun2(int i, int j, vector<int> &vi) {
  if (ch[i][j] != 'L') {
    if (ch[i][j + 1] == 'U') {
      vi.push_back(i);
      vi.push_back(j);
      ch[i][j] = 'L';
      ch[i][j + 1] = 'R';
      ch[i + 1][j] = 'L';
      ch[i + 1][j + 1] = 'R';
    } else {
      fun2(i + 1, j + 1, vi);
      vi.push_back(i);
      vi.push_back(j + 1);
      vi.push_back(i);
      vi.push_back(j);
      ch[i][j] = 'L';
      ch[i][j + 1] = 'R';
      ch[i + 1][j] = 'L';
      ch[i + 1][j + 1] = 'R';
      ch[i][j + 2] = 'U';
      ch[i + 1][j + 2] = 'D';
    }
  }
}
void fun(int i, int j, vector<int> &vi) {
  if (ch[i][j] != 'U') {
    if (ch[i + 1][j] == 'L') {
      vi.push_back(i);
      vi.push_back(j);
      ch[i][j] = 'U';
      ch[i + 1][j] = 'D';
      ch[i][j + 1] = 'U';
      ch[i + 1][j + 1] = 'D';
    } else {
      fun(i + 1, j + 1, vi);
      vi.push_back(i + 1);
      vi.push_back(j);
      vi.push_back(i);
      vi.push_back(j);
      ch[i][j] = 'U';
      ch[i][j + 1] = 'U';
      ch[i + 1][j] = 'D';
      ch[i + 1][j + 1] = 'D';
      ch[i + 2][j] = 'L';
      ch[i + 2][j + 1] = 'R';
    }
  }
}
vector<int> get() {
  vector<int> vi;
  for (int i = 0; i < n - 1; i += 2)
    for (int j = 0; j < m - 1; j += 2) {
      if (ch[i][j] == 'U') {
        fun(i, j + 1, vi);
      } else if (ch[i][j] = 'L') {
        fun2(i + 1, j, vi);
        vi.push_back(i);
        vi.push_back(j);
      }
    }
  return vi;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) cin >> ch[i];
  auto ans1 = get();
  for (int i = 0; i < n; i++) cin >> ch[i];
  auto ans2 = get();
  cout << (ans1.size() + ans2.size() >> 1) << endl;
  for (int i = 0; i < ans1.size(); i += 2)
    cout << ans1[i] + 1 << ' ' << ans1[i + 1] + 1 << endl;
  for (int i = ans2.size() - 2; i >= 0; i -= 2)
    cout << ans2[i] + 1 << ' ' << ans2[i + 1] + 1 << endl;
}
