/*
computing binomial coefficients i.e. N choose R using O(n) precomputation.
use this for large value of N and whem (NchooseR)%prime is used;
*/
//by Tanmay Chaudhari
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
//#pragma comment(linker, "/STACK:66777216")
#include <bits/stdc++.h>
using namespace std;
#define si(a) scanf("%d",&a)
#define sl(a) scanf("%lld",&a)
#define pi(a) printf("%d\n",a)
#define pl(a) printf("%lld\n",a)
typedef long long LL;
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef vector<vi> vvi;
typedef vector<ii> vii;
#define SET(a,b) memset(a,b,sizeof(a))
#define forall(i,a,b) for(int i=a; i<b; i++)
#define forrev(i,a,b) for(int i=a; i>=b; i--)
#define forr(it,container) for(auto it=container.begin(); it!=container.end(); it++)
#define w(t) int t;si(t);while(t--)
#define TRACE
#ifdef TRACE
#define trace1(x) cerr << #x << ": " << x << endl;
#define trace2(x, y) cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
#define trace3(x, y, z) cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
#define trace4(a, b, c, d) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
#define trace5(a, b, c, d, e) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
#define trace6(a, b, c, d, e, f) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << " | " << #f << ": " << f << endl;
#else
#define trace1(x)
#define trace2(x, y)
#define trace3(x, y, z)
#define trace4(a, b, c, d)
#define trace5(a, b, c, d, e)
#define trace6(a, b, c, d, e, f)
#endif
const int MOD = 1e9 + 7;
#define N 2123456
LL fac[N], ifac[N];
LL PowerMod(LL a, LL n){
LL ret = 1;
while (n){
if (n & 1){
ret *= a;
ret %= MOD;
}
a *= a;
a %= MOD;
n /= 2;
}
return ret;
}
inline void precompute(){
int i;
fac[0] = 1;
for (i = 1; i < N; i++){
fac[i] = (i * fac[i - 1]) % MOD;
}
ifac[N - 1] = PowerMod(fac[N - 1], MOD - 2);
for (i = N - 2; i >= 0; i--){
ifac[i] = ((i + 1) * ifac[i + 1]) % MOD;
}
}
LL com(int n, int r){
LL ret = fac[n];
ret *= ifac[r];
ret %= MOD;
ret *= ifac[n - r];
ret %= MOD;
return ret;
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
precompute();
pl(com(4892,231));
return 0;
}
LyoKCWNvbXB1dGluZyBiaW5vbWlhbCBjb2VmZmljaWVudHMgaS5lLiBOIGNob29zZSBSIHVzaW5nIE8obikgcHJlY29tcHV0YXRpb24uCgl1c2UgdGhpcyBmb3IgbGFyZ2UgdmFsdWUgb2YgTiBhbmQgd2hlbSAoTmNob29zZVIpJXByaW1lIGlzIHVzZWQ7CiovCi8vYnkgVGFubWF5IENoYXVkaGFyaQojaWZkZWYgX01TQ19WRVIKI2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojZW5kaWYKLy8jcHJhZ21hIGNvbW1lbnQobGlua2VyLCAiL1NUQUNLOjY2Nzc3MjE2IikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHNpKGEpCQkJCXNjYW5mKCIlZCIsJmEpCiNkZWZpbmUgc2woYSkJCQkJc2NhbmYoIiVsbGQiLCZhKQojZGVmaW5lIHBpKGEpCQkJCXByaW50ZigiJWRcbiIsYSkKI2RlZmluZSBwbChhKQkJCQlwcmludGYoIiVsbGRcbiIsYSkKCnR5cGVkZWYgbG9uZyBsb25nCQkJTEw7CnR5cGVkZWYgdmVjdG9yPGludD4JCQl2aTsKdHlwZWRlZiBwYWlyPGludCwgaW50PgkJaWk7CnR5cGVkZWYgdmVjdG9yPHZpPgkJCXZ2aTsKdHlwZWRlZiB2ZWN0b3I8aWk+CQkJdmlpOwoKI2RlZmluZSBTRVQoYSxiKQkJCW1lbXNldChhLGIsc2l6ZW9mKGEpKQkKI2RlZmluZSBmb3JhbGwoaSxhLGIpCQlmb3IoaW50IGk9YTsgaTxiOyBpKyspCiNkZWZpbmUgZm9ycmV2KGksYSxiKQkJZm9yKGludCBpPWE7IGk+PWI7IGktLSkKI2RlZmluZSBmb3JyKGl0LGNvbnRhaW5lcikgIGZvcihhdXRvIGl0PWNvbnRhaW5lci5iZWdpbigpOyBpdCE9Y29udGFpbmVyLmVuZCgpOyBpdCsrKQojZGVmaW5lIHcodCkJCQkJaW50IHQ7c2kodCk7d2hpbGUodC0tKQoKI2RlZmluZSBUUkFDRQoKI2lmZGVmIFRSQUNFCiNkZWZpbmUgdHJhY2UxKHgpICAgICAgICAgICAgICAgIGNlcnIgPDwgI3ggPDwgIjogIiA8PCB4IDw8IGVuZGw7CiNkZWZpbmUgdHJhY2UyKHgsIHkpICAgICAgICAgICAgIGNlcnIgPDwgI3ggPDwgIjogIiA8PCB4IDw8ICIgfCAiIDw8ICN5IDw8ICI6ICIgPDwgeSA8PCBlbmRsOwojZGVmaW5lIHRyYWNlMyh4LCB5LCB6KSAgICAgICAgICBjZXJyIDw8ICN4IDw8ICI6ICIgPDwgeCA8PCAiIHwgIiA8PCAjeSA8PCAiOiAiIDw8IHkgPDwgIiB8ICIgPDwgI3ogPDwgIjogIiA8PCB6IDw8IGVuZGw7CiNkZWZpbmUgdHJhY2U0KGEsIGIsIGMsIGQpICAgICAgIGNlcnIgPDwgI2EgPDwgIjogIiA8PCBhIDw8ICIgfCAiIDw8ICNiIDw8ICI6ICIgPDwgYiA8PCAiIHwgIiA8PCAjYyA8PCAiOiAiIDw8IGMgPDwgIiB8ICIgPDwgI2QgPDwgIjogIiA8PCBkIDw8IGVuZGw7CiNkZWZpbmUgdHJhY2U1KGEsIGIsIGMsIGQsIGUpICAgIGNlcnIgPDwgI2EgPDwgIjogIiA8PCBhIDw8ICIgfCAiIDw8ICNiIDw8ICI6ICIgPDwgYiA8PCAiIHwgIiA8PCAjYyA8PCAiOiAiIDw8IGMgPDwgIiB8ICIgPDwgI2QgPDwgIjogIiA8PCBkIDw8ICIgfCAiIDw8ICNlIDw8ICI6ICIgPDwgZSA8PCBlbmRsOwojZGVmaW5lIHRyYWNlNihhLCBiLCBjLCBkLCBlLCBmKSBjZXJyIDw8ICNhIDw8ICI6ICIgPDwgYSA8PCAiIHwgIiA8PCAjYiA8PCAiOiAiIDw8IGIgPDwgIiB8ICIgPDwgI2MgPDwgIjogIiA8PCBjIDw8ICIgfCAiIDw8ICNkIDw8ICI6ICIgPDwgZCA8PCAiIHwgIiA8PCAjZSA8PCAiOiAiIDw8IGUgPDwgIiB8ICIgPDwgI2YgPDwgIjogIiA8PCBmIDw8IGVuZGw7CgojZWxzZQoKI2RlZmluZSB0cmFjZTEoeCkKI2RlZmluZSB0cmFjZTIoeCwgeSkKI2RlZmluZSB0cmFjZTMoeCwgeSwgeikKI2RlZmluZSB0cmFjZTQoYSwgYiwgYywgZCkJCiNkZWZpbmUgdHJhY2U1KGEsIGIsIGMsIGQsIGUpCiNkZWZpbmUgdHJhY2U2KGEsIGIsIGMsIGQsIGUsIGYpCgojZW5kaWYKCmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OwojZGVmaW5lIE4gMjEyMzQ1NgoKTEwgZmFjW05dLCBpZmFjW05dOwoKTEwgUG93ZXJNb2QoTEwgYSwgTEwgbil7CglMTCByZXQgPSAxOwoJd2hpbGUgKG4pewoJCWlmIChuICYgMSl7CgkJCXJldCAqPSBhOwoJCQlyZXQgJT0gTU9EOwoJCX0KCQlhICo9IGE7CgkJYSAlPSBNT0Q7CgkJbiAvPSAyOwoJfQoJcmV0dXJuIHJldDsKfQoKaW5saW5lIHZvaWQgcHJlY29tcHV0ZSgpewoJaW50IGk7CglmYWNbMF0gPSAxOwoJZm9yIChpID0gMTsgaSA8IE47IGkrKyl7CgkJZmFjW2ldID0gKGkgKiBmYWNbaSAtIDFdKSAlIE1PRDsKCX0KCWlmYWNbTiAtIDFdID0gUG93ZXJNb2QoZmFjW04gLSAxXSwgTU9EIC0gMik7Cglmb3IgKGkgPSBOIC0gMjsgaSA+PSAwOyBpLS0pewoJCWlmYWNbaV0gPSAoKGkgKyAxKSAqIGlmYWNbaSArIDFdKSAlIE1PRDsKCX0KfQoKTEwgY29tKGludCBuLCBpbnQgcil7CglMTCByZXQgPSBmYWNbbl07CglyZXQgKj0gaWZhY1tyXTsKCXJldCAlPSBNT0Q7CglyZXQgKj0gaWZhY1tuIC0gcl07CglyZXQgJT0gTU9EOwoJcmV0dXJuIHJldDsKfQoKaW50IG1haW4oKQp7CgkvL2ZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKCS8vZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CglwcmVjb21wdXRlKCk7CglwbChjb20oNDg5MiwyMzEpKTsKCXJldHVybiAwOwp9