#include <bits/stdc++.h>
using namespace std;
const int inf = 999999999;
char tem[105];
int dir[105][105][15];
int dp[105][105][15];
int r, c, k;
int a[105][105];
int main() {
  while (scanf("%d%d%d", &r, &c, &k) != EOF) {
    for (int flag = 0; flag < 105; flag++) {
      for (int flag1 = 0; flag1 < 105; flag1++) {
        for (int flag2 = 0; flag2 < 15; flag2++) {
          dp[flag][flag1][flag2] = -inf;
        }
      }
    }
    memset(a, 0, sizeof(a));
    memset(dir, 0, sizeof(dir));
    k++;
    for (int flag = 0; flag < r; flag++) {
      scanf("%s", &tem);
      for (int flag1 = 0; flag1 < c; flag1++) {
        a[flag][flag1] = tem[flag1] - '0';
      }
    }
    for (int flag = 0; flag < c; flag++) {
      dp[0][flag][a[0][flag] % k] = a[0][flag];
    }
    for (int flag = 0; flag < r; flag++) {
      for (int flag1 = 0; flag1 < c; flag1++) {
        for (int flag2 = 0; flag2 < k; flag2++) {
          if (dp[flag][flag1][flag2] < 0) continue;
          if (flag1 + 1 < c) {
            if (dp[flag + 1][flag1 + 1][(flag2 + a[flag + 1][flag1 + 1]) % k] <
                dp[flag][flag1][flag2] + a[flag + 1][flag1 + 1]) {
              dp[flag + 1][flag1 + 1][(flag2 + a[flag + 1][flag1 + 1]) % k] =
                  dp[flag][flag1][flag2] + a[flag + 1][flag1 + 1];
              dir[flag + 1][flag1 + 1][(flag2 + a[flag + 1][flag1 + 1]) % k] =
                  -1;
            }
          }
          if (flag1 - 1 >= 0) {
            if (dp[flag + 1][flag1 - 1][(flag2 + a[flag + 1][flag1 - 1]) % k] <
                dp[flag][flag1][flag2] + a[flag + 1][flag1 - 1]) {
              dp[flag + 1][flag1 - 1][(flag2 + a[flag + 1][flag1 - 1]) % k] =
                  dp[flag][flag1][flag2] + a[flag + 1][flag1 - 1];
              dir[flag + 1][flag1 - 1][(flag2 + a[flag + 1][flag1 - 1]) % k] =
                  1;
            }
          }
        }
      }
    }
    int ans = -1;
    int anspos;
    for (int flag = 0; flag < c; flag++) {
      if (ans < dp[r - 1][flag][0]) {
        ans = dp[r - 1][flag][0];
        anspos = flag;
      }
    }
    printf("%d\n", ans);
    if (ans != -1) {
      printf("%d\n", anspos + 1);
      int curpos = anspos;
      int yushu = 0;
      for (int flag = r - 1; flag > 0; flag--) {
        if (dir[flag][curpos][yushu] == -1) {
          printf("L");
        } else if (dir[flag][curpos][yushu] == 1) {
          printf("R");
        }
        int lastpos = curpos;
        curpos = curpos + dir[flag][curpos][yushu];
        yushu -= a[flag][lastpos];
        yushu += 100 * k;
        yushu %= k;
      }
      printf("\n");
    }
  }
}
