#include <bits/stdc++.h>
using namespace std;
const int N = 20005;
int P;
int p[N], q[N];
int cost(int a, int b) {
  return p[a] + q[b] >= P ? p[a] + q[b] - P : p[a] + q[b];
}
long long dp[2][2][N];
pair<long long, string> solve(int x, int y, int X, int Y) {
  if (x == X) {
    string s;
    long long ans = 0;
    for (int i = y; i < Y; i++) s += 'S', ans += cost(x, i);
    ans += cost(x, Y);
    return make_pair(ans, s);
  }
  if (x == X - 1) {
    long long cur = cost(x, y);
    for (int i = y; i <= Y; i++) cur += cost(x + 1, i);
    long long best = cur;
    int id = y;
    for (int i = y + 1; i <= Y; i++) {
      cur -= cost(x + 1, i - 1);
      cur += cost(x, i);
      if (cur > best) {
        best = cur;
        id = i;
      }
    }
    string ans;
    for (int i = y; i <= Y; i++) ans += (i == id ? 'C' : 'S');
    return {best, ans};
  }
  int mx = (x + X) / 2;
  for (int i = x; i <= mx; i++) {
    for (int j = y; j <= Y; j++) {
      bool b = i % 2;
      if (i == x && j == y)
        dp[0][b][j] = cost(i, j);
      else if (i > x && j == y)
        dp[0][b][j] = cost(i, j) + dp[0][!b][j];
      else if (i == x && j > y)
        dp[0][b][j] = cost(i, j) + dp[0][b][j - 1];
      else if (i > x && j > y)
        dp[0][b][j] = cost(i, j) + max(dp[0][!b][j], dp[0][b][j - 1]);
    }
  }
  for (int i = X; i >= mx; i--) {
    for (int j = Y; j >= y; j--) {
      bool b = i % 2;
      if (i == X && j == Y)
        dp[1][b][j] = cost(i, j);
      else if (i < X && j == Y)
        dp[1][b][j] = cost(i, j) + dp[1][!b][j];
      else if (i == X && j < Y)
        dp[1][b][j] = cost(i, j) + dp[1][b][j + 1];
      else if (i < X && j < Y)
        dp[1][b][j] = cost(i, j) + max(dp[1][!b][j], dp[1][b][j + 1]);
    }
  }
  long long best = -1e18;
  int id = -1;
  for (int i = y; i <= Y; i++) {
    long long cur = dp[0][mx % 2][i] + dp[1][mx % 2][i] - cost(mx, i);
    if (cur > best) {
      best = cur;
      id = i;
    }
  }
  string a = solve(x, y, mx, id).second, b = solve(mx, id, X, Y).second;
  return {best, a + b};
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m >> P;
  for (int i = 0; i < n; i++) cin >> p[i], p[i] %= P;
  for (int i = 0; i < m; i++) cin >> q[i], q[i] %= P;
  auto pr = solve(0, 0, n - 1, m - 1);
  cout << pr.first << "\n" << pr.second << endl;
}
