#include <bits/stdc++.h>
using namespace std;
int a, b, dl = 1, liczba, x;
char znaki[] = {'I', 'V', 'X', 'L', 'C', 'D', 'M', 'M', 'M', 'M'};
char slowo[10], c[1005];
int d[100005];
list<char> lista;
void dodaj(int ile) {
  d[0] += ile;
  for (int i = 0; d[i] > 9 || d[dl] > 0; i++) {
    d[i + 1] += d[i] / 10;
    d[i] = d[i] % 10;
    dl = max(dl, i + 1);
  }
}
void pomnoz(int ile) {
  d[0] *= ile;
  for (int i = 1; (d[i - 1] > 9) || (i < dl); i++) {
    d[i] = d[i] * ile + d[i - 1] / 10;
    d[i - 1] = d[i - 1] % 10;
    if (d[dl] > 0) dl++;
  }
}
int podziel(int ile) {
  int r = 0;
  for (int i = dl - 1; i >= 0; i--) {
    d[i] += r * 10;
    r = d[i] % ile;
    d[i] = d[i] / ile;
  }
  while (dl > 0 && d[dl - 1] == 0) dl--;
  return r;
}
void wypisz_rzymsko(int liczba, int baza) {
  if (liczba > 9) wypisz_rzymsko(liczba / 10, baza + 2);
  liczba %= 10;
  if (liczba % 5 == 4) {
    if (liczba == 4)
      printf("%c%c", znaki[baza], znaki[baza + 1]);
    else
      printf("%c%c", znaki[baza], znaki[baza + 2]);
  } else {
    if (liczba > 4) {
      printf("%c", znaki[baza + 1]);
      liczba -= 5;
    }
    for (int i = liczba; i > 0; i--) printf("%c", znaki[baza]);
  }
}
int main() {
  scanf("%d %s", &a, slowo);
  b = (slowo[0] == 'R'
           ? 'R'
           : (slowo[1] == 0 ? slowo[0] - '0'
                            : (slowo[0] - '0') * 10 + slowo[1] - '0'));
  scanf("%s", c);
  for (int i = 0; c[i]; i++) {
    x = ((c[i]) - ((c[i]) <= '9' ? '0' : ('A' - 10)));
    liczba *= a;
    pomnoz(a);
    liczba += x;
    dodaj(x);
  }
  if (b == 'R') {
    wypisz_rzymsko(liczba, 0);
    printf("\n");
  } else {
    while (dl > 0) {
      x = podziel(b);
      lista.push_front(((x) + ((x) < 10 ? '0' : 'A' - 10)));
    }
    while (!lista.empty()) {
      printf("%c", lista.front());
      lista.pop_front();
    }
  }
  return 0;
}
