#include <bits/stdc++.h>
using namespace std;
int a, b;
char c[100005];
char tmp[100005];
int getNum(char c) {
  if ('0' <= c && c <= '9') {
    return c - '0';
  } else {
    return c - 'A' + 10;
  }
}
long long convince(char str[], int base) {
  int length = strlen(str);
  long long ret = 0;
  long long tmp = 1;
  for (int i = length - 1; i >= 0; i--) {
    ret += getNum(str[i]) * tmp;
    tmp *= base;
  }
  return ret;
}
void convince(long long num, int base) {
  int pos = 0;
  while (num) {
    int tt = num % base;
    if (tt > 9) {
      tt -= 10;
      tmp[pos] = tt + 'A';
    } else {
      tmp[pos] = tt + '0';
    }
    pos++;
    num /= base;
  }
  for (int i = 0; i < pos; i++) {
    c[pos - 1 - i] = tmp[i];
  }
  c[pos] = 0;
}
void printR(long long num) {
  while (num >= 1000) {
    printf("M");
    num -= 1000;
  }
  if (num >= 100) {
    int t = num / 100;
    switch (t) {
      case 1:
      case 2:
      case 3:
        for (int i = 0; i < t; i++) {
          printf("C");
        }
        break;
      case 4:
        printf("CD");
        break;
      case 5:
      case 6:
      case 7:
      case 8:
        printf("D");
        for (int i = 5; i < t; i++) {
          printf("C");
        }
        break;
      case 9:
        printf("CM");
        break;
    }
    num -= t * 100;
  }
  if (num >= 10) {
    int t = num / 10;
    switch (t) {
      case 1:
      case 2:
      case 3:
        for (int i = 0; i < t; i++) {
          printf("X");
        }
        break;
      case 4:
        printf("XL");
        break;
      case 5:
      case 6:
      case 7:
      case 8:
        printf("L");
        for (int i = 5; i < t; i++) {
          printf("X");
        }
        break;
      case 9:
        printf("XC");
        break;
    }
    num -= t * 10;
  }
  if (num >= 1) {
    int t = num;
    switch (t) {
      case 1:
      case 2:
      case 3:
        for (int i = 0; i < t; i++) {
          printf("I");
        }
        break;
      case 4:
        printf("IV");
        break;
      case 5:
      case 6:
      case 7:
      case 8:
        printf("V");
        for (int i = 5; i < t; i++) {
          printf("I");
        }
        break;
      case 9:
        printf("IX");
        break;
    }
  }
  puts("");
}
int main() {
  scanf("%d", &a);
  scanf("%s", tmp);
  if (tmp[0] == 'R') {
    b = 1;
  } else {
    sscanf(tmp, "%d", &b);
  }
  scanf("%s", c);
  long long base10 = convince(c, a);
  if (b == 1) {
    printR(base10);
  } else {
    if (base10) {
      convince(base10, b);
      printf("%s\n", c);
    } else {
      puts("0");
    }
  }
  return 0;
}
