#include <bits/stdc++.h>
using namespace std;
#define fs first
#define sc second
#define pb emplace_back
#define mp make_pair
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define rep(i, n) for (int i = 0; i < (int)(n); ++i)
using pii = pair<int, int>;
using vi = vector<int>;
using lint = long long;
const int inf = 1001001001;
const lint linf = 1001001001001001001ll;
const int mod = 1e9 + 7;
const int dx[]{0, 1, 0, -1, -1, -1, 1, 1}, dy[]{1, 0, -1, 0, -1, 1, -1, 1};
template<typename T> inline bool chmin(T &a, T b) { if (a > b) { a = b; } return a > b; }
template<typename T> inline bool chmax(T &a, T b) { if (a < b) { a = b; } return a < b; }
template<typename T> inline void print(const T &x, string s = "\n") { cout << x << s; }
template<typename T> inline void print(const vector<T> &v, string s = " ")
{ if (!v.size()) puts(""); rep(i, v.size()) cout << v[i] << (i + 1 == v.size() ? "\n" : s); }
inline bool inside(int y, int x, int H, int W) { return 0 <= y && y < H && 0 <= x && x < W; }
inline lint in() { lint x; std::cin>>x; return x; }
lint mod_pow(lint a, lint x, int p = 1e9 + 7) {
lint ret = 1;
for (lint i = 1ll << 60; i; i >>= 1) {
ret *= ret;
ret %= p;
if (x & i) { ret *= a; ret %= p; }
}
return ret;
}
lint inv(lint n, int p = 1e9 + 7) {
return mod_pow(n, p - 2);
}
vector<lint> fact(1, 1);
lint Fact(lint n, int p = 1e9 + 7) {
if (n == 0) return 1;
if (fact.size() <= n) {
fact.push_back(Fact(n - 1) * n % p);
}
return fact[n];
}
// nCk のmod
lint mod_Combination(lint n, lint k, int p = 1e9 + 7) {
if (n < k || n < 0 || k < 0) return 0;
return Fact(n, p) * inv(Fact(k, p), p) % p * inv(Fact(n - k, p), p) % p;
}
int n = in(), k = in();
int ei[110][110];
int beet(int s, int i = 0) {
if (i == n) return s == 0;
int &ret = ei[s][i];
if (~ret) return ret;
ret = 0;
for (int j = 0; j <= s; ++j) {
ret += beet(s - j, i + 1);
ret %= mod;
}
return ret;
}
signed main() {
if (k / n == 0) {
memset(ei, -1, sizeof(ei));
cout << beet(k) << endl;
}
else {
cout << mod_Combination(n, k - k / n * n) << endl;
}
}