#include <bits/stdc++.h>
using namespace std;
int d[110][110][12], k;
int n, m, s[110][110];
int dp(int x, int y, int kk) {
  if (d[x][y][kk] != -1) return d[x][y][kk];
  if (x == 1 && kk == 0) return d[x][y][kk] = 1000000;
  if (x == 1) return d[x][y][kk] = 0;
  int res = 0;
  if (y != m)
    res = max(res,
              dp(x - 1, y + 1, (kk + s[x - 1][y + 1]) % k) + s[x - 1][y + 1]);
  if (y != 1)
    res = max(res,
              dp(x - 1, y - 1, (kk + s[x - 1][y - 1]) % k) + s[x - 1][y - 1]);
  return d[x][y][kk] = res;
}
void dfs(int x, int y, int kk) {
  if (x == 1) return;
  if (y < m && d[x - 1][y + 1][(kk + s[x - 1][y + 1]) % k] + s[x - 1][y + 1] ==
                   d[x][y][kk]) {
    printf("R");
    dfs(x - 1, y + 1, (kk + s[x - 1][y + 1]) % k);
  } else {
    printf("L");
    dfs(x - 1, y - 1, (kk + s[x - 1][y - 1]) % k);
  }
}
int main() {
  scanf("%d %d %d", &n, &m, &k);
  k++;
  char ss[110];
  for (int i = 1; i <= n; ++i) {
    scanf("%s", &ss[1]);
    for (int j = 1; j <= m; ++j) s[i][j] = ss[j] - '0';
  }
  memset(d, -1, sizeof(d));
  int res = 0, ans = 0;
  for (int i = 1; i <= m; ++i) res = max(res, dp(n, i, s[n][i] % k) + s[n][i]);
  if (res < 1000000)
    puts("-1");
  else {
    printf("%d\n", res - 1000000);
    for (int i = 1; i <= m; ++i)
      if (d[n][i][s[n][i] % k] + s[n][i] == res) {
        printf("%d\n", i);
        dfs(n, i, s[n][i] % k);
        break;
      }
  }
  return 0;
}
