#include #include #include #include using namespace std; using i64 = long long; constexpr int mod = int(powl(10, 9)) + 7; vector> dp; int f(int n, int k) { k = min(k, n*(n-1)/2); int &res = dp[n][k]; if(res != -1) { return res; } if(n == 0 && k == 0) { return res = 1; } res = 0; if(k >= 1) { res += f(n, k-1); res %= mod; } res += f(n-1, k); res %= mod; if(k >= n) { res -= f(n-1, k-n); res %= mod; res += mod; res %= mod; } return res; } int main(void) { int n, k; scanf("%d%d", &n, &k); dp.assign(n+1, vector(k+1, -1)); int res = f(n, k); printf("%d\n", res); return 0; }