def HtO(number):
B_str = ''
O_str = ''
HtB_Dict = {'0':'0000','1':'0001','2':'0010','3':'0011','4':'0100','5':'0101','6':'0110','7':'0111',
'8':'1000','9':'1001','A':'1010','B':'1011','C':'1100','D':'1101','E':'1110','F':'1111'}
BtO_Dict = {'000':'0','001':'1','010':'2','011':'3','100':'4','101':'5','110':'6','111':'7'}
# 16进制转2进制
for i in range(len(number)):
B_str += HtB_Dict[number[i]]
# 去掉高位0
high_zero = 0
for i in range(len(B_str)):
if B_str[i] == '0':
high_zero += 1
elif B_str[i] == '1':
break
B_str = B_str[high_zero:]
# 补0
fill_zero_num = 3 - len(B_str) % 3
if fill_zero_num != 3:
for i in range(fill_zero_num):
B_str = '0' + B_str
# 2进制转8进制
for i in range(len(B_str)):
if (i + 1) % 3 == 0:
O_str += BtO_Dict[B_str[i-2:i+1]]
return O_str
# 输入
n = int(input())
numbers = []
for i in range(n):
num_str = input()
if len(num_str) <= 100000:
numbers.append(num_str)
# 输出
for number in numbers:
print(HtO(number))