local mfl, mce = math.floor, math.ceil local n = io.read("*n") local a = {} for i = 0, n - 1 do a[i] = io.read("*n") end local up = {{}} local t = {{}} for i = 0, n - 1 do local dst = (i + a[i]) % n t[1][i] = dst up[1][i] = 1LL * mfl((i + a[i]) / n) end -- print(table.concat(t[1], " ")) for i = 2, 45 do t[i] = {} up[i] = {} for j = 0, n - 1 do local z = t[i - 1][j] t[i][j] = t[i - 1][z] up[i][j] = up[i - 1][j] + up[i - 1][z] end -- print(table.concat(t[i], " ")) end local q = io.read("*n") for iq = 1, q do local k = io.read("*n") local cur = 0 local u = 0LL for i = 1, 45 do if k == 0 then break end if k % 2 == 1 then u = u + up[i][cur] cur = t[i][cur] end k = mfl(k / 2) end local z = u * n + cur local zs = tostring(z):gsub("LL", "") print(zs) end