#include <bits/stdc++.h>
using namespace std;
const int NM_MAX = 52;
int n, m;
char a[NM_MAX][NM_MAX];
char b[NM_MAX][NM_MAX];
void f1(char ma[NM_MAX][NM_MAX], vector<pair<int, int> > *v) {
  for (int i = 1; i < n; i++)
    for (int j = 1; j < m; j++)
      if (ma[i][j] == 'U' && ma[i][j + 1] == 'U' && ma[i + 1][j] == 'D' &&
          ma[i + 1][j + 1] == 'D') {
        ma[i][j] = ma[i + 1][j] = 'L';
        ma[i][j + 1] = ma[i + 1][j + 1] = 'R';
        v->push_back(make_pair(i, j));
      }
}
void f2(char ma[NM_MAX][NM_MAX], vector<pair<int, int> > *v) {
  for (int i = 1; i < n; i++)
    for (int j = 1; j < m; j++)
      if (ma[i][j] == 'L' && ma[i][j + 1] == 'R' && ma[i + 1][j] == 'L' &&
          ma[i + 1][j + 1] == 'R') {
        ma[i][j] = ma[i][j + 1] = 'U';
        ma[i + 1][j] = ma[i + 1][j + 1] = 'D';
        v->push_back(make_pair(i, j));
      }
}
bool t(char ma[NM_MAX][NM_MAX]) {
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      if (ma[i][j] == 'L' || ma[i][j] == 'R') return false;
  return true;
}
void f(char ma[NM_MAX][NM_MAX], vector<pair<int, int> > *v) {
  while (t(ma) == false) {
    f1(ma, v);
    f2(ma, v);
  }
}
vector<pair<int, int> > va, vb;
char aux[NM_MAX][NM_MAX];
void rot(char ma[NM_MAX][NM_MAX]) {
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= n; j++) aux[i][j] = ma[j][i];
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= n; j++) {
      ma[i][j] = aux[i][j];
      if (ma[i][j] == 'U')
        ma[i][j] = 'L';
      else if (ma[i][j] == 'D')
        ma[i][j] = 'R';
      else if (ma[i][j] == 'L')
        ma[i][j] = 'U';
      else if (ma[i][j] == 'R')
        ma[i][j] = 'D';
    }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    string s;
    cin >> s;
    a[i][0] = ' ';
    for (int j = 1; j <= m; j++) a[i][j] = s[j - 1];
  }
  for (int i = 1; i <= n; i++) {
    string s;
    cin >> s;
    b[i][0] = ' ';
    for (int j = 1; j <= m; j++) b[i][j] = s[j - 1];
  }
  bool isrot = false;
  if (n & 1) {
    rot(a);
    rot(b);
    swap(n, m);
    isrot = true;
  }
  f(a, &va);
  f(b, &vb);
  reverse(vb.begin(), vb.end());
  cout << va.size() + vb.size() << "\n";
  for (pair<int, int> p : va) {
    if (isrot == true) swap(p.first, p.second);
    cout << p.first << " " << p.second << "\n";
  }
  for (pair<int, int> p : vb) {
    if (isrot == true) swap(p.first, p.second);
    cout << p.first << " " << p.second << "\n";
  }
  return 0;
}
