#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;
}