#include <bits/stdc++.h>
using namespace std;
const int N = 2e4 + 5;
int n, m, p, x[N], y[N], sz;
int dp1[N], dp2[N];
char ans[N];
int rec(int x1, int y1, int x2, int y2) {
  if (x1 == x2) {
    int cur = 0;
    for (int i = y1; i <= y2; i++) {
      cur += (x[x1] + y[i]) % p;
      if (i < y2) {
        ans[++sz] = 'S';
      }
    }
    return cur;
  }
  for (int i = y1; i <= y2; i++) {
    dp1[i] = dp2[i] = 0;
  }
  int mid = (x1 + x2) >> 1;
  for (int i = x1; i <= mid; i++) {
    for (int j = y1; j <= y2; j++) {
      if (j > y1) {
        dp1[j] = max(dp1[j], dp1[j - 1]);
      }
      dp1[j] += (x[i] + y[j]) % p;
    }
  }
  for (int i = x2; i > mid; i--) {
    for (int j = y2; j >= y1; j--) {
      if (j < y2) {
        dp2[j] = max(dp2[j], dp2[j + 1]);
      }
      dp2[j] += (x[i] + y[j]) % p;
    }
  }
  int mx = -1, pos = -1;
  for (int i = y1; i <= y2; i++) {
    if (dp1[i] + dp2[i] > mx) {
      mx = dp1[i] + dp2[i];
      pos = i;
    }
  }
  rec(x1, y1, mid, pos);
  ans[++sz] = 'C';
  rec(mid + 1, pos, x2, y2);
  return mx;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m >> p;
  for (int i = 0; i < n; i++) {
    cin >> x[i];
  }
  for (int i = 0; i < m; i++) {
    cin >> y[i];
  }
  cout << rec(0, 0, n - 1, m - 1) << "\n";
  for (int i = 1; i <= sz; i++) {
    cout << ans[i];
  }
}
