C - Counting Products

Time limit: 3 s
Memory limit: 1024 MiB
Languages: C, C++, Java, Python, ... (details)

You are given the integers $n$ and $k$. You want to calculate how many different integers $x$ $(1\le x \le n)$ can be obtained as a product of $x_i$ such that:

  • $x_1 + x_2 + \cdots + x_m = k$
  • $x_i \ge 1$ and $m \ge 1$

As an example, assume that $n = 20$ and $k=8$, then:

  • As $1+2+2+3 = 8$, product will be $1 \cdot 2\cdot 2 \cdot 3 = 12$
  • As $4+2+2=8$, product will be $ 4\cdot 2 \cdot 2 = 16$ 
  • As $8=8$, product will be $8=8$
  • As $1+1+1+1+1+1+1+1 = 8$, product will be $1\cdot1\cdot1\cdot1\cdot1\cdot1\cdot1\cdot1 = 1$

So 1, 12, 16, 8 and others can be obtained.


Input

First line contains integers $n$ and $k$ $(1\le n,k \le 1000)$.   

Output

On a single line print the answer to the problem.

Sample test(s)

Input
20 8
Output
14