local n, d, k = io.read("*n", "*n", "*n") local min, max = math.floor((1 + k) * k / 2), math.floor((2 * n - k + 1) * k / 2) if(d < min or max < d) then print(-1) else for t = k, 1, -1 do local lowsum = math.floor(t * (t - 1) / 2) local highsum = math.floor((2 * n - k + t + 1) * (k - t) / 2) local rem = d - lowsum - highsum if(t <= rem and rem <= n - k + t) then local tbl = {} for i = 1, t - 1 do table.insert(tbl, i) end table.insert(tbl, rem) for i = t + 1, k do table.insert(tbl, n - k + i) end print(table.concat(tbl, " ")) break end end end