public class Euler498 {

    private static final long kPrime = 999999937L;

    private static long modPow(long base, long exp, long mod) {
        long result = 1L % mod;
        long cur = base % mod;
        long e = exp;
        while (e > 0L) {
            if ((e & 1L) != 0L) {
                result = (result * cur) % mod;
            }
            cur = (cur * cur) % mod;
            e >>= 1L;
        }
        return result;
    }

    private static long binomModSmallPrimeDigit(long n, long k, long prime) {
        if (k > n) {
            return 0L;
        }
        k = Math.min(k, n - k);
        if (k == 0L) {
            return 1L;
        }

        long numerator = 1L;
        long denominator = 1L;
        for (long i = 1L; i <= k; ++i) {
            numerator = (numerator * (n - k + i)) % prime;
            denominator = (denominator * i) % prime;
        }
        long invDenominator = modPow(denominator, prime - 2L, prime);
        return (numerator * invDenominator) % prime;
    }

    private static long binomModPrimeLucas(long n, long k, long prime) {
        if (k > n) {
            return 0L;
        }
        long result = 1L;
        long nn = n;
        long kk = k;
        while (nn > 0L || kk > 0L) {
            long ni = nn % prime;
            long ki = kk % prime;
            if (ki > ni) {
                return 0L;
            }
            long digit = binomModSmallPrimeDigit(ni, ki, prime);
            result = (result * digit) % prime;
            nn /= prime;
            kk /= prime;
        }
        return result;
    }

    private static long coefficientMod(long n, long m, long d, long prime) {
        if (d >= m || m > n) {
            return 0L;
        }
        long first = binomModPrimeLucas(n, d, prime);
        long second = binomModPrimeLucas(n - d - 1L, m - d - 1L, prime);
        return (first * second) % prime;
    }

    public static void main(String[] args) {
        long n = 10000000000000L;
        long m = 1000000000000L;
        long d = 10000L;

        long answer = coefficientMod(n, m, d, kPrime);
        System.out.println(answer);
    }
}
