//In the name of God
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<ll, ll> pll;

const ll maxn = 120;
const ll maxm = 3400;
const ll mod = 1e9 + 7;
const ll inf = 1e18;

#define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define file_io freopen("input.txt", "r+", stdin);freopen("output.txt", "w+", stdout);
#define pb push_back
#define Mp make_pair
#define F first
#define S second

ll n, k, dp[maxn][maxm], ans;

int main(){
    fast_io;

    cin >> n >> k;
    ans = n * k * 500000004 % mod;
    dp[n + 1][0] = 1;
    for(ll i = n; i > 0; i--){
        for(ll j = 0; j <= k; j++){
            for(ll o = 0; o < maxm; o++){
                if(j > i){
                    dp[i][o] += dp[i + 1][o];
                    if(dp[i][o] >= mod) dp[i][o] -= mod;
                }
                else if(o + (o + j) / i < maxm){
                    dp[i][o + (o + j) / i] += dp[i + 1][o];
                    if(dp[i][o + (o + j) / i] >= mod) dp[i][o + (o + j) / i] -= mod;
                }
            }
        }
        ans = ans * (k + 1) % mod;
    }
    for(ll i = 0; i < maxm; i++){
        ans = (ans - i * dp[1][i]) % mod;
    }
    cout << (ans + mod) % mod;

    return 0;
}
