n, k = map(int, input().split())
dp = [[[0 for _ in range(n + 1)] for _ in range(n + 1)] for _ in range(n + 1)]
for i in range(1, n + 1):
dp[i][i][i] = 1
ans = 0
for i in range(n + 1):
for mn in range(n + 1):
for mx in range(mn, i + 1):
val = dp[i][mn][mx]
if i == n and mx - mn <= k:
ans += val
for j in range(1, min(n - i + 1, mn)):
dp[i + j][j][mx] += val
for j in range(mn, min(n - i + 1, mx)):
dp[i + j][mn][mx] += val
for j in range(mx, n - i + 1):
dp[i + j][mn][j] += val
print(ans % (10**9+7))