func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T1>   void deb(T1 e1) {     cout << e1 << endl;   }   template <class T1, class T2>   void deb(T1 e1, T2 e2) {     cout << e1 <<     << e2 << endl;   }   template <class T1, class T2, class T3>   void deb(T1 e1, T2 e2, T3 e3) {     cout << e1 <<     << e2 <<     << e3 << endl;   }   template <class T1, class T2, class T3, class T4>   void deb(T1 e1, T2 e2, T3 e3, T4 e4) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 << endl;   }   template <class T1, class T2, class T3, class T4, class T5>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 << endl;   }   template <class T1, class T2, class T3, class T4, class T5, class T6>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 <<     << e6          << endl;   }   template <class T>   T gcd(const T a, const T b) {     return (b ? gcd<T>(b, a % b) : a);   }   template <class T>   T lcm(const T a, const T b) {     return (a / gcd<T>(a, b) * b);   }   struct node {     long long x, y;     node() {}     node(long long x, long long y) : x(x), y(y) {}     bool operator<(const node& p) const { return x < p.x; }   };   string s1, s2;   long long convert_10(long long n, string s) {     long long l;     l = s.size() - 1;     long long x = 1, y = 0, p;     for (long long i = l; i >= 0; i--) {       if (s[i] >=  0  && s[i] <=  9 )         p = s[i] -  0 ;       else         p = 10 + s[i] -  A ;       y += x * p;       x *= n;     }     return y;   }   string convert_base(long long n, long long x) {     string s =   ;     while (x > 0) {       long long y = x % n;       x /= n;       char c;       if (y > 9)         c =  A  + (y - 10);       else         c =  0  + y;       s = c + s;     }     if (s ==   ) s =  0 ;     return s;   }   string convert_roman(long long n) {     string s =   ;     string one[10] = {  ,  I ,  II ,  III ,  IV ,  V ,  VI ,  VII ,  VIII ,  IX };     string ten[10] = {  ,  X ,  XX ,  XXX ,  XL ,  L ,  LX ,  LXX ,  LXXX ,  XC };     string hundred[10] = {  ,   C ,   CC ,   CCC ,   CD ,                            D ,  DC ,  DCC ,  DCCC ,  CM };     string thousand[4] = {  ,  M ,  MM ,  MMM };     s += thousand[n / 1000];     n %= 1000;     s += hundred[n / 100];     n %= 100;     s += ten[n / 10];     n %= 10;     s += one[n];     return s;   }   long long convert_num(string s) {     long long x = 0;     for (long long i = 0; i < s.size(); i++) x = x * 10 + s[i] -  0 ;     return x;   }   int main() {     long long i, j, k, l, x, y, z, t, m, n;     cin >> n >> s1 >> s2;     x = convert_10(n, s2);     string s;     if (s1 ==  R ) {       s = convert_roman(x);     } else {       y = convert_num(s1);       s = convert_base(y, x);     }     deb(s);     return 0;   }   