#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pii;

#define A first
#define B second

const ll p = 1e9+7;

ll n, k;
ll dp[105][205*205];

int main() {
	cin >> n >> k;
	for (int i = n; i >= 1; --i) {
		if (i == n) {
			if (k == n)
				dp[n][1] = 1;
			else
				dp[n][1] = 0;
			dp[n][0] = k+1 - dp[n][1];
			continue;
		}

		for (int j = 0; j <= k; ++j)
			for (int m = 0; m <= n*n; ++m) {
				if (j > i) {
					dp[i][m] = (dp[i][m] + dp[i+1][m])%p;
				} else {
					int y = j/i*i;
					if (y == 0)
						y += i;
					if (y < j)
						y += i;
					int z = (j+m)/i*i;
					int s = (z-y)/i + 1;
					if (s < 0)
						s = 0;

					dp[i][m + s] = (dp[i][m + s] + dp[i+1][m])%p;
				}
			}

		/* for (int m = 0; m <= n*n; ++m)
			cout << dp[i][m] << ' ';
		cout << endl; */

		//how to do exactly j things
	}

	ll ans = 1;
	for (int i = 0; i < n; ++i)
		ans = (ans*(k+1))%p;
	ans = ans*n%p*k%p*(p+1)/2%p;

	for (int i = 0; i <= n*n; ++i) {
		ans = (ans + p - dp[1][i]*i%p)%p;
	}

	cout << ans << endl;
}