#include<iostream>
#include<cstdio>
using namespace std;
int main(){
char c;
int i;
int j = 0,l = 0;
int a[1000]={0};//開個1000的整數數組用來存數
for(i = 0;;i++){
c=getchar();//接受輸入的字元
if(c == '#')break;//當接收到#退出循環
if(c == '-'&&j == 0&&l == 0){//當無整數存入數組a中并且得到- j自加
j++;
}
switch(c){//根據字元給數組指派
case'0':
a[l]=0;
l++;
break;
case'1':
a[l]=1;
l++;
break;
case'2':
a[l]=2;
l++;
break;
case'3':
a[l]=3;
l++;
break;
case'4':
a[l]=4;
l++;
break;
case'5':
a[l]=5;
l++;
break;
case'6':
a[l]=6;
l++;
break;
case'7':
a[l]=7;
l++;
break;
case'8':
a[l]=8;
l++;
break;
case'9':
a[l]=9;
l++;
break;
case'A':
a[l]=10;
l++;
break;
case'a':
a[l]=10;
l++;
break;
case'B':
a[l]=11;
l++;
break;
case'b':
a[l]=11;
l++;
break;
case'C':
a[l]=12;
l++;
break;
case'c':
a[l]=12;
l++;
break;
case'D':
a[l]=13;
l++;
break;
case'd':
a[l]=13;
l++;
break;
case'E':
a[l]=14;
l++;
break;
case'e':
a[l]=14;
l++;
break;
case'F':
a[l]=15;
l++;
break;
case'f':
a[l]=15;
l++;
break;
}
}
int sum = 0;
l=l-1;//因為得到最後一個整數時,l做了自加運算,是以l需要減1
int p = 1;
for(;l >= 0; l--){//從後往前周遊數組
sum+=p*a[l];
p=p*16;
}
if(j == 0)printf("%d",sum);//無負号
if(j != 0 && sum != 0)//有負号并且加和不等于0
printf("-%d",sum);
if(j != 0&&sum == 0)printf("0");有負号并且加和等于0
return 0;
}