import java.io.*;
import java.math.BigInteger;
import java.util.StringTokenizer;
public class Main {
static BigInteger[][] answers;
public static void main(String... args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    StringTokenizer tokenizer = new StringTokenizer(br.readLine());
    int n = Integer.parseInt(tokenizer.nextToken());
    int k = Integer.parseInt(tokenizer.nextToken());
    answers = new BigInteger[n+1][k+1];
    br.close();
    BigInteger result = bino(n, k) ;
    bw.write(String.valueOf(result.mod(BigInteger.valueOf(10007))));
    bw.flush();
    bw.close();
}
static BigInteger bino(int n, int k) {
    if (answers[n][k] != null) {
        return answers[n][k];
    }
    if (k == 0 || n == k) {
        answers[n][k] = BigInteger.ONE;
    } else {
        answers[n][k] = bino(n - 1, k - 1).add(bino(n - 1, k));
    }
    return answers[n][k];
}
}
public static void main(String... args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    StringTokenizer tokenizer = new StringTokenizer(br.readLine());
    int n = Integer.parseInt(tokenizer.nextToken());
    int k = Integer.parseInt(tokenizer.nextToken());
    int[][] answers = new int[n+1][n+1];
    br.close();
    answers[0][0] = 1;
    for (int i = 1; i < n + 1; i++) {
        answers[i][0] = answers[i][i] = 1;
        for (int j = 1; j < i; j++) {
            answers[i][j] = answers[i-1][j] + answers[i-1][j-1];
            answers[i][j] %= 10007;
        }
    }
    bw.write(String.valueOf(answers[n][k]));
    bw.flush();
    bw.close();
}