Problem: Mashmokh's boss, Bimokh, didn't like Mashmokh. So he fired him. Mashmokh decided to go to university and participate in ACM instead of finding a new job. He wants to become a member of Bamokh's team. In order to join he was given some programming tasks and one week to solve them. Mashmokh is not a very experienced programmer. Actually he is not a programmer at all. So he wasn't able to solve them. That's why he asked you to help him with these tasks. One of these tasks is the following.

A sequence of l integers b1, b2, ..., bl (1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n) is called good if each number divides (without a remainder) by the next number in the sequence. More formally <image> for all i (1 ≤ i ≤ l - 1).

Given n and k find the number of good sequences of length k. As the answer can be rather large print it modulo 1000000007 (109 + 7).

Input

The first line of input contains two space-separated integers n, k (1 ≤ n, k ≤ 2000).

Output

Output a single integer — the number of good sequences of length k modulo 1000000007 (109 + 7).

Examples

Input

3 2


Output

5


Input

6 4


Output

39


Input

2 1


Output

2

Note

In the first sample the good sequences are: [1, 1], [2, 2], [3, 3], [1, 2], [1, 3].

Solution (in JAVA):

Solution:
import java.util.*;


public class bucky{




public static void main (String args[]) {

Scanner input=new Scanner(System.in);

HashMap<String, String> map1= new HashMap<String, String>();
HashMap<Integer, Integer> map2= new HashMap<Integer, Integer>();
HashMap<String, Integer> scazut= new HashMap<String, Integer>();
HashMap<Integer, Integer> linieright= new HashMap<Integer, Integer>();

	
	int  n=input.nextInt();
	int k=input.nextInt();
	
	int dp[][]=new int[2001][2001];
	

	
	for(int j=1;j<=2000;j++)
	dp[1][j]=1;
	

	int mod=1000000007;
	

	
	
   int x=2;
   while(x<=k)

    {
        for(int j=1;j<=n;j++)
        
        for(int t=j;t<=n;t+=j)
        
        {dp[x][t]+=dp[x-1][j];
   if(dp[x][t]>=mod)   dp[x][t]=dp[x][t]%mod;
      
        }
        
        
       x++; 
        
    }




	Long result=0L;
	
	for(int i=1;i<=n;i++) 
	{result+=dp[k][i];
    if(result>=mod)	result=result%mod;}
	
	System.out.println(result);
	
	
	

	
	
}
	
	
	
	
	
	
	
	
	
	
	
	
			
			
			}