#include #include #include #include using namespace std; int N, K; long dp[300][90000]; long array_patterns(int now_array_size, int now_inversion_number){ if(now_array_size == N){ return now_inversion_number <= K; }else if(dp[now_array_size][now_inversion_number] != -1){ return dp[now_array_size][now_inversion_number]; }else{ long ans = 0; for(int i = 0; i <= now_array_size; i++){ ans += array_patterns(now_array_size + 1, now_inversion_number + i); ans %= long(1e9 + 7); } return dp[now_array_size][now_inversion_number] = ans; } } int main(){ cin >> N >> K; for(int i = 0; i < 300; i++){ for(int j = 0; j < 90000; j++){ dp[i][j] = -1; } } cout << array_patterns(0, 0) << endl; }