#include<bits/stdc++.h>
#include <vector>
#include <ctime>
#define ll long long
#define mod 1000000007
using namespace std;
ll fact[100011],invfact[100011];
ll pow(ll a, ll b)
{
ll x=1,y=a;
while(b > 0)
{
if(b%2 == 1)
{
x=(x*y);
if(x>mod) x%=mod;
}
y = (y*y);
if(y>mod) y%=mod;
b /= 2;
}
return x;
}
void preprocess()
{
fact[0]=fact[1]=1;
invfact[0]=invfact[1]=-1;
for(int i=2;i<100001;i++)
{
fact[i]=(fact[i-1]*i);
fact[i]%=mod;
invfact[i]=-1;
}
}
ll comb(ll n, ll k)
{
if(invfact[k]==-1)
{
invfact[k]=pow(fact[k],mod-2);
invfact[k]%=mod;
}
if(invfact[n-k]==-1)
{
invfact[n-k]=pow(fact[n-k],mod-2);
invfact[n-k]%=mod;
}
return ( ( ( fact[n] * invfact[k] ) % mod ) * invfact[n-k] ) % mod;
}
int main()
{
preprocess();
cout<<comb(10,2);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGN0aW1lPgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxsIGZhY3RbMTAwMDExXSxpbnZmYWN0WzEwMDAxMV07CgpsbCBwb3cobGwgYSwgbGwgYikKewogICAgbGwgeD0xLHk9YTsKICAgIHdoaWxlKGIgPiAwKQogICAgewogICAgICAgIGlmKGIlMiA9PSAxKQogICAgICAgIHsKICAgICAgICAgICAgeD0oeCp5KTsKICAgICAgICAgICAgaWYoeD5tb2QpIHglPW1vZDsKICAgICAgICB9CiAgICAgICAgeSA9ICh5KnkpOwogICAgICAgIGlmKHk+bW9kKSB5JT1tb2Q7CiAgICAgICAgYiAvPSAyOwogICAgfQogICAgcmV0dXJuIHg7Cn0Kdm9pZCBwcmVwcm9jZXNzKCkKewogICAgZmFjdFswXT1mYWN0WzFdPTE7CiAgICBpbnZmYWN0WzBdPWludmZhY3RbMV09LTE7CiAgICBmb3IoaW50IGk9MjtpPDEwMDAwMTtpKyspCiAgICB7CiAgICAgICAgZmFjdFtpXT0oZmFjdFtpLTFdKmkpOwogICAgICAgIGZhY3RbaV0lPW1vZDsKICAgICAgICBpbnZmYWN0W2ldPS0xOwogICAgfQoKfQpsbCBjb21iKGxsIG4sIGxsIGspCnsKICAgIGlmKGludmZhY3Rba109PS0xKQogICAgewogICAgICAgIGludmZhY3Rba109cG93KGZhY3Rba10sbW9kLTIpOwogICAgICAgIGludmZhY3Rba10lPW1vZDsKICAgIH0KICAgIGlmKGludmZhY3Rbbi1rXT09LTEpCiAgICB7CiAgICAgICAgaW52ZmFjdFtuLWtdPXBvdyhmYWN0W24ta10sbW9kLTIpOwogICAgICAgIGludmZhY3Rbbi1rXSU9bW9kOwogICAgfQogICAgcmV0dXJuICggKCAoIGZhY3Rbbl0gKiBpbnZmYWN0W2tdICkgJSBtb2QgKSAqIGludmZhY3Rbbi1rXSApICUgbW9kOwp9CmludCBtYWluKCkKICAgewogICAgICAgcHJlcHJvY2VzcygpOwogICAgICAgY291dDw8Y29tYigxMCwyKTsKICAgICB9Cg==