#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef long double LD; typedef vector VI; typedef pair PII; typedef vector VPII; #define MP make_pair #define ST first #define ND second #define PB push_back #define FOR(i,a,b) for( int i=(a); i<=(b); ++i) #define FORD(i,a,b) for( int i=(a); i>=(b); --i) #define REP(i,n) for(int i=0; i<(n); ++i) #define ALL(X) (X).begin(),(X).end() #define SIZE(X) (int)(X).size() #define FOREACH(it,X) for(__typeof((X).begin()) it=(X).begin(); it!=(X).end(); ++it) char txt[1000]; bool czycyf(char x){ return x >= '0' && x <= '9'; } void zamien(char *b, int n, int r, int &len){ len = 0; if (n == 0){ b[0] = '0'; len = 1; return; } int mn = 1; int i = 0; r = -r; while(n != 0){ if (mn > 0){ if (n > 0){ b[i] = '0' + (n % r); n /= r; }else{ if ((-n) % r){ b[i] = '0' + (r - (-n) % r); n -= b[i] - '0'; n /= r; }else{ b[i] = '0'; n /= r; } } }else{ if (n > 0){ if (n % r){ b[i] = '0' + (r - n % r); n = (n/r) + 1; }else{ b[i] = '0'; n = n/r; } }else{ b[i] = '0' + (-n) % r; n += b[i] - '0'; n /= r; } } mn *= -r; i++; } len = i; } int main(){ while(1){ fgets(txt, 999, stdin); if (txt[0]=='e') break; if (txt[0]=='t'){ int r, n; sscanf(txt+2, "%d %d", &r, &n); char wyn[1000]; int d; zamien(wyn, n, r, d); wyn[d] = 0; reverse(wyn, wyn+d); printf("%s\n", wyn); }else{ int i = 4; int r; sscanf(txt+4, "%d", &r); while(txt[i] != ' ') ++i; while(!czycyf(txt[i])) ++i; int j = i; while(czycyf(txt[j])) ++j; int mn = 1; int s = 0; for(j--; j>=i; --j){ s += (txt[j]-'0') * mn; mn *= r; } printf("%d\n", s); } } return 0; }