Link to this code: https://cses.fi/paste/7a925d82ca902512d6dea0/
def get_digit(k):
    digits = 1
    multiplier = 1
    current_chunk_size = 9 * multiplier * digits
    remaining = k
    while remaining > current_chunk_size:
        remaining -= current_chunk_size
        digits += 1
        multiplier *= 10
        current_chunk_size = 9 * multiplier * digits

    # remaning - 1 -> 0-based
    offset = multiplier
    final_string = offset + ((remaining - 1) // digits)
    position = (remaining - 1) % digits
    return str(final_string)[position]


for _ in range(int(input())):
    k = int(input())
    res = get_digit(k)
    print(res)

"""
1->9 - 9 * 1
10->99 - 90 * 2
100->999 - 900 * 3
1000->9999 - 9000 * 4
100... -> 999... - 900... * n

123456789 | 1011121314151617181920212223242526272829303132333435363738
<-- 9  --> <---- 90 ---

if k <= 9:
    offset = 1
    final_string = string(offset + (k - 1)/1)
    i = k % 1
    ith position of final_string
elif 9 < k <= 189 # (189 = 90 * 2 + 9)
    offset = 10
    final_string = string(offset + (k - 1)/2)
    i = k % 2
    ith position of final_string
elif 189 < k <= 2889 # (2889 = 900 * 3 + 90 * 2 + 9)
    offset = 100
    final_string = string(offset + (k - 1)/3)
    i = k % 3
    ith position of final_string
"""