local mod = 1000000007 local function badd(a, b) return (a + b) % mod end local n, k = io.read("*n", "*n", "*l") io.read() local dp1, dp2 = {}, {} for i = 1, k + 1 do dp1[i] = 0 end dp1[1] = 1 for i = 1, n do local src = i % 2 == 1 and dp1 or dp2 local dst = i % 2 == 1 and dp2 or dp1 for j = 1, k + 1 do dst[j] = 0 end for j = 0, i - 1 do for z = 1, k + 1 - j do dst[z + j] = badd(dst[z + j], src[z]) end end end local tbl = n % 2 == 1 and dp2 or dp1 local ret = 0 for i = 1, k + 1 do ret = badd(ret, tbl[i]) end print(ret)