#include <bits/stdc++.h>
#pragma comment(linker, "/STACK=100000000")
using namespace std;
long long a, b, n;
int main() {
  cin >> a;
  string s, t;
  cin >> s;
  cin >> t;
  if (s == "R") {
    long long p = 1, q = 0;
    for (int i = t.size() - 1; i >= 0; i--) {
      long long f = t[i] - '0';
      if (t[i] >= 'A') f = 10 + (t[i] - 'A');
      q += p * f;
      p = p * a;
    }
    string A[] = {"0", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
    string B[] = {"0",  "X",   "XX",   "XXX", "XL", "L",
                  "LX", "LXX", "LXXX", "XC",  "C"};
    string C[] = {"0",  "C",   "CC",   "CCC", "CD", "D",
                  "DC", "DCC", "DCCC", "CM",  "M"};
    string D[] = {"0",  "M",   "MM",   "MMM", "ty", "L",
                  "LX", "LXX", "LXXX", "XC",  "C"};
    string r = "";
    int h = 0;
    while (q > 0) {
      int z = q % 10;
      if (z != 0) {
        if (h == 0) r = A[z] + r;
        if (h == 1) r = B[z] + r;
        if (h == 2) r = C[z] + r;
        if (h == 3) r = D[z] + r;
      }
      h++;
      q /= 10;
    }
    cout << r << endl;
  } else {
    stringstream ss;
    ss << s;
    ss >> b;
    long long p = 1, q = 0;
    for (int i = t.size() - 1; i >= 0; i--) {
      long long f = t[i] - '0';
      if (t[i] >= 'A') f = 10 + (t[i] - 'A');
      q += p * f;
      p = p * a;
    }
    string r = "";
    while (q > 0) {
      long long f = (q % b);
      if (f < 10)
        r += char('0' + f);
      else
        r += char('A' + (f - 10));
      q /= b;
    }
    reverse(r.begin(), r.end());
    if (r.empty()) r += '0';
    cout << r << endl;
  }
  cin >> n;
}
