#include <iostream>
using namespace std;
int main() {
long long q,k,dig,num,i,cnt,j,p;cin>>q;
while(q--){
dig=1;cnt=0;i=9;num=1;
cin>>k;
//Finding no of digits
while(k>cnt){
cnt+=i*dig++;//9+90*2+900*3
i*=10;
}
p=--dig;
//Finding number just 1 less than than the smallest "dig" digits number
while(p-->1)num*=10;num--;p=dig;cnt=0;i=9;j=1;
//calculating how position we've moved till now(out of k)
while(p-->1){
cnt+=i*j++;
i*=10;
}
//remaining position to move
cnt=k-cnt;
//digit we'll get if we further move remaining position
num+=cnt/dig;
//if cnt%dig==0 exactly last digit of "num" is answer else
//the new "num" is num+1 and the answer will be the "cnt" index's(from left)
//digit of new num
if(cnt%dig!=0){
cnt=cnt%dig;p=dig-cnt-1;i=10;num++;
while(p--)i*=10;
num/=i;
}
cout<<num%10<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cglsb25nIGxvbmcgcSxrLGRpZyxudW0saSxjbnQsaixwO2Npbj4+cTsKCXdoaWxlKHEtLSl7CgkJZGlnPTE7Y250PTA7aT05O251bT0xOwoJCWNpbj4+azsKCQkvL0ZpbmRpbmcgbm8gb2YgZGlnaXRzCgkJd2hpbGUoaz5jbnQpewoJCQljbnQrPWkqZGlnKys7Ly85KzkwKjIrOTAwKjMKCQkJaSo9MTA7CgkJfQoJCXA9LS1kaWc7CgkJLy9GaW5kaW5nIG51bWJlciBqdXN0IDEgbGVzcyB0aGFuIHRoYW4gdGhlIHNtYWxsZXN0ICJkaWciIGRpZ2l0cyBudW1iZXIgCgkJd2hpbGUocC0tPjEpbnVtKj0xMDtudW0tLTtwPWRpZztjbnQ9MDtpPTk7aj0xOwoJCS8vY2FsY3VsYXRpbmcgaG93IHBvc2l0aW9uIHdlJ3ZlIG1vdmVkIHRpbGwgbm93KG91dCBvZiBrKQoJCXdoaWxlKHAtLT4xKXsKCQkJY250Kz1pKmorKzsKCQkJaSo9MTA7CgkJfQoJCS8vcmVtYWluaW5nIHBvc2l0aW9uIHRvIG1vdmUKCQljbnQ9ay1jbnQ7CgkJLy9kaWdpdCB3ZSdsbCBnZXQgaWYgd2UgZnVydGhlciBtb3ZlIHJlbWFpbmluZyBwb3NpdGlvbgoJCW51bSs9Y250L2RpZzsKCQkvL2lmIGNudCVkaWc9PTAgZXhhY3RseSBsYXN0IGRpZ2l0IG9mICJudW0iIGlzIGFuc3dlciBlbHNlCgkJLy90aGUgbmV3ICJudW0iIGlzIG51bSsxIGFuZCB0aGUgYW5zd2VyIHdpbGwgYmUgdGhlICJjbnQiIGluZGV4J3MoZnJvbSBsZWZ0KSAgCgkJLy9kaWdpdCBvZiBuZXcgbnVtIAoJCWlmKGNudCVkaWchPTApewogICAgICAgICAgICAgY250PWNudCVkaWc7cD1kaWctY250LTE7aT0xMDtudW0rKzsKICAgICAgICAgICAgIHdoaWxlKHAtLSlpKj0xMDsKICAgICAgICAgICAgIG51bS89aTsKCQl9CgkJY291dDw8bnVtJTEwPDwnXG4nOwoJfQoJcmV0dXJuIDA7Cn0=