const
fi = '';//MULONE.INP';
fo = '';//MULONE.OUT';
maxn = 10000000;
var
n,test,t : longint;
kq : array[1..maxn] of longint;
procedure sol;
var
i,nho,tong : longint;
count : longint;
begin
tong:=0; nho:=0; count:=0;
for i:=1 to n do
begin
tong:=(i+nho) mod 10;
nho:=(i+nho) div 10;
inc(count);
kq[count]:=tong;
end;
for i:=n-1 downto 1 do
begin
tong:=(i+nho) mod 10;
nho:=(i+nho) div 10;
inc(count);
kq[count]:=tong;
end;
for i:=count downto 1 do write(kq[i]);
writeln;
end;
BEGIN
assign(input,fi); reset(input);
assign(output,fo); rewrite(output);
readln(T);
for test:=1 to T do
begin
readln(N);
sol;
end;
close(input);
close(output);
END.
Y29uc3QKICBmaSA9ICcnOy8vTVVMT05FLklOUCc7CiAgZm8gPSAnJzsvL01VTE9ORS5PVVQnOwogIG1heG4gPSAxMDAwMDAwMDsKdmFyCiAgbix0ZXN0LHQgOiBsb25naW50OwogIGtxIDogYXJyYXlbMS4ubWF4bl0gb2YgbG9uZ2ludDsKIApwcm9jZWR1cmUgc29sOwp2YXIKICBpLG5obyx0b25nIDogbG9uZ2ludDsKICBjb3VudCA6IGxvbmdpbnQ7CmJlZ2luCiAgdG9uZzo9MDsgbmhvOj0wOyBjb3VudDo9MDsKICBmb3IgaTo9MSB0byBuIGRvCiAgICBiZWdpbgogICAgICB0b25nOj0oaStuaG8pIG1vZCAxMDsKICAgICAgbmhvOj0oaStuaG8pIGRpdiAxMDsKICAgICAgaW5jKGNvdW50KTsKICAgICAga3FbY291bnRdOj10b25nOwogICAgZW5kOwogIGZvciBpOj1uLTEgZG93bnRvIDEgZG8KICAgIGJlZ2luCiAgICAgIHRvbmc6PShpK25obykgbW9kIDEwOwogICAgICBuaG86PShpK25obykgZGl2IDEwOwogICAgICBpbmMoY291bnQpOwogICAgICBrcVtjb3VudF06PXRvbmc7CiAgICBlbmQ7CiAgZm9yIGk6PWNvdW50IGRvd250byAxIGRvIHdyaXRlKGtxW2ldKTsKICB3cml0ZWxuOwplbmQ7CiAKQkVHSU4KICBhc3NpZ24oaW5wdXQsZmkpOyByZXNldChpbnB1dCk7CiAgYXNzaWduKG91dHB1dCxmbyk7IHJld3JpdGUob3V0cHV0KTsKICByZWFkbG4oVCk7CiAgZm9yIHRlc3Q6PTEgdG8gVCBkbwogICAgYmVnaW4KICAgICAgcmVhZGxuKE4pOwogICAgICBzb2w7CiAgICBlbmQ7CiAgY2xvc2UoaW5wdXQpOwogIGNsb3NlKG91dHB1dCk7CkVORC4=