#include <stdio.h>
// 0x2A = 2* 16^1 + 10 * 16^0 = 32+10 = 42
int power(int n,int k) // n^k
{
int i;
int val=n;
if(k==0){
return 1;
}
if(k==1){
return n;
}
for(i=2;i<=k;i++){ // i=2;n*n;i=3,n*n*n,i=4,n*n*n*n
val = n * val;
}
return val;
}
int main()
{
char s[1000]="";
// printf("%d\n",0x2A); // 42
while(scanf("%s",s)!=EOF){
int i,start,end,k,j;
int d=0;
for(i=0; s[i]!='\0'; i++){
if(s[i]=='0' && (s[i+1]=='x' || s[i+1]=='X')){
start=i+2;
for(i=i+2; s[i]!='\0' && !(s[i]=='0' && (s[i+1]=='x' || s[i+1]=='X')); i++){ // 注意条件,\0判断和非操作(因为i变化了,并且使用s[i]值进行判断)
}
end=i-1;
for(k=end,j=0;k>=start;k--,j++){ // 低位开始
if((s[k]>='A' || s[k]>='a') && (s[k]>='F' || s[k]<='f')){
d = d + (s[k]-'A'+10)*power(16,j);
}else{
d = d + (s[k]-'0')*power(16,j); // 注意输入的是字符串,这里也要处理
}
// printf("power(16,j)=%d; d=%d\n",power(16,j),d);
}
printf("%d\n",d);
// 接下来从上个数结束的地方继续遍历
}
}
}
return 0;
}