#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef vector VI; typedef vector VII; typedef vector VS; typedef long long lint; typedef long long LL; typedef string ST; #define VAR(v,n) typeof(n) v=(n) #define REP(i,n) for(int i=0; i<(n); i++) #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 FOREACH(i,c) for(VAR(i,(c).begin()); i!=(c).end(); i++) #define PB push_back #define PF push_front #define PI pair #define MP make_pair #define FI first #define SE second #define VR vector #define IT iterator #define ALL(x) (x).begin(),(x).end() #define SIZE(x) ((int)(x).size()) #define CLEAR(c,w) memset(c,w,sizeof(c)) char buf[1000]; int r; void f(int a,int b,int &div,int &mod) { div=a/b; mod=a-div*b; if (mod<0) { if (b<0) { mod-=b; div++; } else { mod+=b; div--; } } } void to10(int n) { int w=0,m=1,div,mod; if (n==0) { printf("0\n"); return; } while (n) { f(n,10,div,mod); w=w+m*mod; n=div; // printf("[%d %d]\n",div,mod); m*=r; } printf("%d\n",w); } void from10(int n) { int div,mod; VI D; D.clear(); if (n==0) { printf("0\n"); return; } while (n) { f(n,r,div,mod); //printf("[%d %d]\n",div,mod); D.PB(mod); n=div; } FORD(i,D.size()-1,0) printf("%d",D[i]); printf("\n"); } int main() { int n; gets(buf); while (buf[0]!='e') { if (buf[0]=='t') { sscanf(buf,"to-%d %d",&r,&n); r=-r; //printf("%d %d\n",r,n); from10(n); //return 0; } else { sscanf(buf,"from-%d %d",&r,&n); r=-r; to10(n); } gets(buf); } return 0; }