#include <iostream>
#include<algorithm>
#include<cmath>
using namespace std;

typedef long long ll; 

const ll p = 1000000007;

ll fast_pow_mod(ll base, ll exp, ll p) {
	ll ans = 1;
	while (exp > 0) {
		if(exp & 1) ans = (ans * base) % p;
		base = (base * base) % p;
		exp >>= 1;
	}
	return ans;
}

//计算m * (m - 1) * ... *(m - n + 1)  
ll factorial(ll m, ll n, ll p) {
	ll result = 1;
	while (n-- > 0) {
		result = (result * m) % p;
		m--;
	}
	return result;
}
//提醒大家注意精度,建议全long long得了
int main() {
	ll n, x;
	cin >> n >> x;
	ll m;
	m = sqrt(x);
	//C m n
	ll a = factorial(m, n, p);
	ll b = factorial(n, n, p);
	ll inverse = fast_pow_mod(b, p - 2, p);
	cout << (a * inverse) % p << endl;
}