#include #include using namespace std; char buf[40]; int r; bool from; void convfrom(int b) { int l = strlen(buf); r = 0; int p = 1; b = -b; while (l-->0) { int c = buf[l] - '0'; r += c*p; p *= b; } printf("%d\n", r); } void convto(int b) { int odd = 0; if (r==0) { printf("0\n"); return; } if (r<0) { odd = 1; r = -r; } int l = 0; while (r>0) { #ifdef DEB printf("debug: %d %d %d %d\n", r, b, odd, r%b); #endif if (odd && (r%b>0)) r = r-r%b + 2*b - r%b; buf[l++] = '0' + r%b; r /= b; odd = 1-odd; } for (int i = l-1; i>=0; i--) printf("%c", buf[i]); printf("\n"); } int main() { int b; while (1) { scanf("%s", buf); if (buf[0] == 'e') return 0; from = (buf[0] == 'f'); b = buf[strlen(buf)-1] - '0'; if (b==0) b =10; if (from) { scanf("%s", buf); } else { scanf("%d", &r); } if (from) {convfrom(b); } else { convto(b); } } }