#include int b[10][100]; int sum[10][100]; inline int is_in(int a, int b, int c) { //printf("%d in (%d %d)\n",c,a,b); if (a>=b && (c<=a && c>=b)) return 1; if (a=a && c<=b)) return 1; return 0; } int main() { int i; for (i=2;i<=10;i++) { int m=1; int j; b[i][0]=0; sum[i][0]=0; for (j=1;j<=20;j++) { // printf("%d ",(i-1)*m); b[i][j]=m; if (j>1) sum[i][j]=sum[i][j-2]+m*(i-1); else sum[i][j]=m*(i-1); m*=-i; } // printf("\n"); } char buf[1000]; int base; char num[100]; while (1) { scanf(" %s",buf); if (*buf=='e') break; char *tmp; for (tmp=buf;*tmp!='-';tmp++); ++tmp; sscanf(tmp,"%d",&base); scanf("%s",num); base=-base; if (*buf=='f') { int vysl=0; char *p=num; while (*p) { vysl=vysl*base+*p-'0'; p++; } printf("%d\n",vysl); } else if (*buf=='t') { int n; sscanf(num,"%d",&n); int pos=0; int oldpos=-1; if (n==0) { printf("0\n"); continue; } base=-base; for (pos=0;pos<20;pos++) { if (is_in(sum[base][pos],sum[base][pos+1],n)) break; } while (1) { if (oldpos>0) for (;oldpos-1>pos;oldpos--) printf("0"); oldpos=pos; int k,tmp; for (k=0;k0;oldpos--) printf("0"); break; } fflush(stdout); } printf("\n"); } } return 0; }