#include <bits/stdc++.h>
using namespace std;
int dig(char c) {
  if (c >= 'A' && c <= 'Z')
    return c - 55;
  else
    return c - 48;
}
string tostr(int n) {
  string s;
  while (n != 0) {
    s.push_back(n % 10 + 48);
    n /= 10;
  }
  int i = 0, j = s.length() - 1;
  char c;
  while (i < j) {
    c = s[i];
    s[i] = s[j];
    s[j] = c;
    i++;
    j--;
  }
  return s;
}
string ss(char c, int x) {
  int ten = 1;
  while (x--) ten *= 10;
  ten *= c - 48;
  switch (ten) {
    case (0):
      return "";
    case (1):
      return "I";
    case (2):
      return "II";
    case (3):
      return "III";
    case (4):
      return "IV";
    case (5):
      return "V";
    case (6):
      return "VI";
    case (7):
      return "VII";
    case (8):
      return "VIII";
    case (9):
      return "IX";
    case (10):
      return "X";
    case (20):
      return "XX";
    case (30):
      return "XXX";
    case (40):
      return "XL";
    case (50):
      return "L";
    case (60):
      return "LX";
    case (70):
      return "LXX";
    case (80):
      return "LXXX";
    case (90):
      return "XC";
    case (100):
      return "C";
    case (200):
      return "CC";
    case (300):
      return "CCC";
    case (400):
      return "CD";
    case (500):
      return "D";
    case (600):
      return "DC";
    case (700):
      return "DCC";
    case (800):
      return "DCCC";
    case (900):
      return "CM";
    case (1000):
      return "M";
    case (2000):
      return "MM";
    case (3000):
      return "MMM";
  }
}
string roman(long long int num) {
  string s;
  string n = tostr(num);
  int i, len = n.length();
  for (i = 0; i < len; i++) {
    s.append(ss(n[i], len - i - 1));
  }
  return s;
}
long long int fun(string s, int base) {
  int i, len = s.length();
  long long int sum = dig(s[0]);
  for (i = 1; i < len; i++) {
    sum = base * sum + dig(s[i]);
  }
  return sum;
}
string fun2(long long int a, int base) {
  string s;
  int k;
  while (a != 0) {
    k = a % base;
    if (k < 10)
      s.push_back(k + 48);
    else
      s.push_back(k - 10 + 65);
    a /= base;
  }
  int i = 0, j = s.length() - 1;
  char c;
  while (i < j) {
    c = s[i];
    s[i] = s[j];
    s[j] = c;
    i++;
    j--;
  }
  return s;
}
int toInt(string s) {
  int a = 0;
  int i, len = s.length();
  for (i = 0; i < len; i++) a = a * 10 + s[i] - 48;
  return a;
}
bool boo(string s) {
  bool tt = true;
  int i, len = s.length();
  for (i = 0; i < len; i++)
    if (s[i] != '0') return false;
  return true;
}
int main() {
  int a;
  string bb, cc;
  int b, c;
  cin >> a >> bb;
  cin >> cc;
  if (boo(cc)) {
    cout << "0" << endl;
    return 0;
  }
  string ans;
  long long int inter = fun(cc, a);
  if (bb.compare("R") == 0)
    ans = roman(inter);
  else {
    ans = fun2(inter, toInt(bb));
  }
  cout << ans << endl;
  return 0;
}
