#include <bits/stdc++.h>   using namespace std;   void rom(long long W) {     long long pot = 1LL;     char val[20] =  IVXLCDM ;     long long w = 0LL, z, i;     while (pot <= W) {       pot *= 10LL;       w++;     }     pot /= 10LL;     w--;     while (pot) {       z = W / pot;       if (z == 4)         printf( %c%c , val[w * 2], val[w * 2 + 1]);       else if (z == 9)         printf( %c%c , val[w * 2], val[w * 2 + 2]);       else {         if (z >= 5) {           printf( %c , val[w * 2 + 1]);           z -= 5;         }         for (i = 0; i < z; i++) printf( %c , val[w * 2]);       }       W -= W / pot * pot;       pot /= 10LL;       w--;     }     printf(  n );   }   void nice(long long W, long long B) {     if (W == 0LL) cout << 0;     long long pot = 1LL;     char val[300];     int i, j;     for (i = 0, j =  0 ; j <=  9 ; i++, j++) val[i] = j;     for (j =  A ; j <=  Z ; i++, j++) val[i] = j;     while (pot <= W) {       pot *= B;     }     pot /= B;     while (pot) {       printf( %c , val[W / pot]);       W -= (W / pot) * pot;       pot /= B;     }     printf(  n );   }   int main() {     long long a;     char b[10000], c[10000];     long long w, pot, i, j;     long long val[300];     memset(val, 0, sizeof(val));     for (i =  0 , j = 0; i <=  9 ; i++, j++) {       val[i] = j;     }     for (i =  A ; i <=  Z ; i++, j++) {       val[i] = j;     }     cin >> a;     scanf( %s%s , b, c);     w = 0LL;     pot = 1LL;     for (i = strlen(c) - 1; i >= 0; i--, pot *= a) {       w += (val[c[i]]) * pot;     }     if (b[0] ==  R )       rom(w);     else {       int q;       sscanf(b,  %d , &q);       nice(w, 0LL + q);     }     return 0;   }   