#include //#include #define yes cout << "Yes" << '\n' #define no cout << "No" << '\n' #define YES cout << "YES" << '\n' #define NO cout << "NO" << '\n' #define OK cout << "OK" << '\n' #define NG cout << "NG" << '\n' #define Yes "Yes" #define No "No" #define Takahashi cout << "Takahashi" << '\n' #define Aoki cout << "Aoki" << '\n' #define minus cout << -1 << '\n' #define br cout << '\n' #define nl '\n' #define sadFace ":(" #define circle 'o' #define cross 'x' #define elif else if #define len(s) (int)s.length() #define sz size #define it insert #define mp make_pair #define pb push_back #define eb emplace_back #define ll long long #define ull unsigned long long #define ft first #define sd second #define ctz(x) __builtin_ctz(x); #define rep(i, n) for (int i = 0; i < (n); i++) #define rep1(i, n) for (int i = 1; i <= (n); i++) #define MIN(v) *min_element(all(v)) #define MAX(v) *max_element(all(v)) #define all(v) v.begin(), v.end() #define lla(v) rbegin(v), rend(v) #define vecTotal(v) accumulate(v.begin(), v.end(), 0) #define ruisekiwa(v, e) partial_sum(v.begin(), v.end(), back_inserter(e)) using namespace std; //using namespace atcoder; template T div_ceil(T a, T b) { // 切り上げ除算 return (a >= 0 ? (a + b - 1) : a) / b; } template T div_floor(T a, T b) { // 切り捨て除算 return a / b - (a % b < 0); } template void grid_input(vector> &v, int h, int w) { rep(i,h) { rep(j,w) { cin >> v[i][j]; } } } int main() { ios::sync_with_stdio(false); cin.tie(0); int a; cin >> a; vector v = {720,360,180,30,6,1}; vector ans; int i = 0; while(i != 6) { if(a - v[i] >= 0) { a -= v[i]; ans.pb(i); } else { i++; } if(a == 0) break; } string s; for(int j = 0; j < (int)ans.sz(); j++) { if(ans[j] == 0) { s += 'C'; } elif(ans[j] == 1) { s += 'M'; } elif(ans[j] == 2) { s += 'S'; } elif(ans[j] == 3) { s += 'R'; } elif(ans[j] == 4) { s += 'o'; } else { s += '.'; } } cout << s << nl; }