ulong f2(int k, int n) {
auto nums = new ulong[k + 1];
nums[$ - 1] = 1;
int iter = k;
ulong total = 0;
foreach(i;k..n + 1) {
int iter_next = iter + 1 > k? 0 : iter + 1;
total += nums[iter] - nums[iter_next];
nums[iter_next] = total % 10^^8;
iter = iter_next;
}
return nums[iter];
}
