#include<iostream>
#include<cstring>
using namespace std;
#define max 100010
int a[max];//a[y]=x该数组就是输入y,得到的是y的最小生成元
int main(){
int i,x,y=0,n;
memset(a,0,sizeof(a));
for(i=0;i<max;i++){
x=i,y=i;
while(x){
y=y+x%10;//求出各个位数+本身之和
x=x/10;
}
if(a[y]==0||i<a[y]){//y的生成元没有存储过,或者i小于y之前的生成元
a[y]=i;
}
}
int T;//输入几个数
cin>>T;
for(i=0;i<T;i++){
cin>>n;//输入n
cout<<a[n]<<endl;//输出n的最小生成元
}
return 0;
}