def solution(k, ranges):
    answer = []
    graph = []
    n = 0
    while k > 1 :
        temp = k
        if k % 2 == 0 : 
            k = k//2
        else :
            k = k*3 + 1

        a = max(temp, k)
        b = min(temp, k)

        graph.append(a - (a-b)/2)
        n += 1
    for i in ranges :
        count = 0
        if(len(graph)+i[1] >= i[0]) :
            for j in graph[i[0]:len(graph)+i[1]]:
                count += j
        else : count = -1
        answer.append(count)
    return answer