#include #include #include #include #include #define FOR(a,b,c) for(int a=b;a<=c;a++) #define REP(a,c) for(int a=0;a=c;a--) #define WT while(1) #define GETI(a) scanf("%d", &a) #define BZ(a) memset(a,0,sizeof(a)) #define FILL(a,b) fill(a,a+(sizeof(a)/sizeof(a[0])),b) #define FOREACH(a,b) for(__typeof((b).begin()) a=(b).begin(); a!=(b).end();a++) #define D(args...) printf(args) using namespace std; int main() { WT { char buffer[1000]; if (gets(buffer)==NULL) break; char *cmd=strtok(buffer,"-"); if (cmd[0]=='e') break; if (strcmp(cmd,"end")==0) break; char *rad=strtok(NULL," "); int R; sscanf(rad,"%d",&R); R=-R; char *rest=strtok(NULL," "); if (strcmp(cmd,"from")==0) { int result=0; REP(i,strlen(rest)) { result=result*R + (rest[i]-'0'); } printf("%d\n",result); } if (strcmp(cmd,"to")==0) { int number=0; sscanf(rest,"%d",&number); vector ans; if (number==0) ans.push_back(0); while (number!=0) { int koncowka=number%R; if (koncowka<0) koncowka+=(-R); number=(number-koncowka)/R; ans.push_back(koncowka); } ROF(i,ans.size()-1,0) printf("%d",ans[i]); printf("\n"); } } return 0; }