HackDream Orange 07-E: Dãy chia hết

Xem PDF

Nộp bài


Điểm: 100 (thành phần)
Thời gian: 1.0s
Python 3.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Một dãy số nguyên độ dài ~l : b_1, b_2, ..., b_l (1 \le b1 \le b2 \le ... \le b_l \le N)~ được gọi là tốt nếu mỗi số chia hết cho số đứng ngay trước nó trong dãy số. Cụ thể hơn, ~b_i|b_{i+1}~ cho tất cả ~i (1 \le i\le l - 1)~

Cho ~N~ và ~K~. Tìm số lượng dãy số tốt có độ dài ~K~. Vì câu trả lời có thể rất lớn nên các bạn hãy in ra kết quả của đáp án khi chia dư cho ~10^9 + 7~

Input

1 dòng duy nhất chứa 2 số ~N~ và ~K~

Output

1 số nguyên duy nhất là kết quả của bài toán chia dư cho ~10^9+7~

Giới hạn

~1 \le N, K \le 1000~

Input

3 2

Output

5

Giải thích

Trong ví dụ, các dãy số tốt là [1,1], [2,2], [3,3], [1,2], [1,3]

Subtask

  • 20% số điểm của bài toán có giới hạn ~N \le 1000~, ~K \le 2~
  • 20% số điểm của bài toán có giới hạn ~N \le 2~, ~K \le 1000~
  • 60% số điểm của bài toán có giới hạn gốc

Bình luận đầu tiên

Bình luận

Không có bình luận nào.