static int calc(int n, int m){
    if(m < 1){
        return 0;
    }
    int mod = 10007;
    int[] dp = new int[n+1];
    dp[0] = 1;
    for(int i=1;i<=n;i++){
        int start = Math.max(i-m,0);
        for(int j=start;j<=i-1;j++){
           dp[i] = (dp[i] % mod + dp[j] % mod) % mod;
       }
    }
    return dp[n] % mod;

}