"""
注意:
比K小符合題意的最大值不能通過循環來求,比如91111111111,超時
根據以下測試用例,可以找出規律和坑:
9876 ---8999
8765 ---8000
6789 ---6669
340 ---339
990 ---899
"""
def getMax(lis,dic):
#獲取比K小符合題意的最大值
i=0
while True:
if i==len(lis)-1:
break
if lis[i + 1] not in dic[lis[i]]: #後一位數不能由前一位到達
if lis[i+1]>lis[i]: #後數大於前數
lis[i+1]=lis[i]
lis[i + 2:] = [9] * len(lis[i + 2:])
else:
if 0 in dic[lis[i]]:
lis[i+1]=0
else:
lis[i]=lis[i]-1
lis[i+1:]=[9]*len(lis[i+1:])
if i==0:
return lis
elif lis[i] in dic[lis[i-1]]:
return lis
else:
i=i-2
i+=1
return lis
#每一個數作爲鍵,每個數可達的數放到數組中作爲值
dic={}
dic[0]=[0]
dic[1]=[i for i in range(10)]
dic[2]=[0,2,3,5,6,8,9]
dic[3]=[3,6,9]
dic[4]=[0,4,5,6,7,8,9]
dic[5]=[0,5,6,8,9]
dic[6]=[6,9]
dic[7]=[0,7,8,9]
dic[8]=[0,8,9]
dic[9]=[9]
N=int(input())
for _ in range(N):
K=list(input())
K=[int(i) for i in K]
lis=getMax(K,dic)
num=''
for i in range(len(lis)):
num+=str(lis[i])
print(int(num))