#include<bits/stdc++.h>
using namespace std;
int t;
int x, y;
string st;
int ans[514514], y9[514514];
int f(int x) {
if (!x)
return 0;
return x + f(x / 10);
}
int sti(string x) {
int res = 0;
for (int i = 0; i < x.size(); i++)
res = res * 10 + (x[i] - '0');
return res;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> t;
while (t--) {
cin >> st;
if (st.size() > 9) {
int n = st.size(), fnd = 0;
for (int i = 1; i <= n; i++)
ans[i] = st[i - 1] - '0';
for (int i = 1; i <= n / 2; i++)
swap(ans[i], ans[n - i + 1]);
for (int i = 1; i <= n; i++)
y9[i] = ans[i];
int jw = 0;
for (int i = 1; i <= n; i++){
ans[i] = (ans[i] - jw) * 9 + jw;
ans[i + 1] += ans[i] / 10;
jw = ans[i] / 10;
ans[i] %= 10;
if (ans[n + 1])
n++;
}
long long sum = 0, cha = 0;
while (ans[1] != 0){
ans[1] ++;
ans[2] += ans[1] / 10;
ans[1] %= 10;
cha++;
}
for (int i = 1; i <= n; i++)
if (ans[i] >= 10){
ans[i + 1] += ans[i] / 10;
ans[i] %= 10;
}
for (int i = 1; i <= n; i++)
sum += ans[i];
if (sum == cha){
bool qd = 0;
for (int i = n; i >= 2; i--){
if (ans[i] != 0)
qd = 1;
if (ans[i] != 0 || qd == 1)
cout << ans[i];
}
fnd = 1;
cout << "\n";
continue;
}
while (1){
if (cha > 9 * n)
break;
cha += 10;
sum++;
ans[2]++;
for (int i = 2; i <= n; i++)
if (ans[i] >= 10){
sum -= 9;
ans[i] %= 10;
ans[i + 1] ++;
}
for (int i = n; i >= 1; i--)
cout << ans[i];
if (sum == cha){
bool qd = 0;
for (int i = n; i >= 2; i--){
if (ans[i] != 0)
qd = 1;
if (ans[i] != 0 || qd == 1)
cout << ans[i];
}
fnd = 1;
cout << "\n";
break;
}
}
if (!fnd)
cout << "-1\n";
}
if (st.size() <= 9) {
y = sti(st);
int r = 0;
x = -1;
for (int i = 0; i <= y; i++) {
if (f(i) == y) {
if (x == -1)
x = i;
else
r = 1;
}
}
if (r == 1)
cout << "-1\n";
else
cout << x << "\n";
}
}
}