#include using namespace std; int main(){ int N, K; cin >> N >> K; long array_patterns[N + 1][N * (N + 1) / 2 + 1]; // now_array_size, now_inversion_number for(int i = 0; i <= N * (N + 1) / 2; i++){ array_patterns[N][i] = (i <= K); } for(int i = N - 1; i >= 0; i--){ for(int j = 0; j <= i * (i + 1) / 2; j++){ long ans = 0; for(int k = 0; k <= i; k++){ ans += array_patterns[i + 1][j + k]; ans %= long(1e9 + 7); } array_patterns[i][j] = ans; } } cout << array_patterns[0][0] << endl; }