D :: Dreamy Sequence
Time Limit: 10 Seconds Memory Limit: 65536 KB
A sequence of k integers b1, b2, …, bk (1 ≤ b1 ≤ b2 ≤ … ≤ bk ≤ n) is called a dreamy sequence if each number divides (without a remainder) the next number in the sequence. More formally, we can say bi | bi+1 for all 1 ≤ i ≤ k-1, or in another word, bi+1 mod bi = 0 for all 1 ≤ i ≤ k-1. Given n and m, find the number of dreamy sequences of length m. Two sequences x1, x2, …, xm and y1, y2, …, ym are different, if and only if there exists an i such that 1 ≤ i ≤ m and xi != yi. For example, for n=3, m=2, there are 5 different dreamy sequences: [1, 1], [2, 2], [3, 3], [1, 2], [1, 3]
As the answer can be rather large print it modulo 1000000007 (109+7).
Input
The first line of the input contains an integer T ≤ 64, indicating the number of test cases. For each test case, the first and only line contains two integers n and m (1 ≤ n, m ≤ 2000), indicating the upper limit of the elements in the sequence and the length of the sequence.
Output
For each case output a single integer, indicating the number of dreamy sequences of length modulo 1000000007.
Sample Input
1 3 2
Sample Output
5Submit