小可爱分块
题号:NC20879
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

小可爱生快!” ——2018.10.30
“小可爱分块!”——2018.11.1
所以说,小可是谁?
小可爱特别喜欢分块,于是,她就把Kirito_Rivaille刚刚买来的序列分开了,但是Kirito_Rivaille把她打了一顿。
Kirito_Rivaille 有一个长度为n的序列,而小可爱由于不开心,所以她不希望看到任何一个长度>=k的子串中,子串内的所有元素的gcd>1
所以小可爱现在要钦定这个序列上某些位置为1,其他的位置,可能是任何正整数。 
现在她想知道,她至少需要钦定多少个位置是1,才能使所有长度>=k的所有子串,子串的gcd=1
注意:子串是连续的!

输入描述:

一行两个数n,k,表示序列长度,和要求的最小子串长度。

输出描述:

一行一个整数表示答案
示例1

输入

复制
1 1

输出

复制
1

备注:

20%pts: n,k<=10

40%pts: n,k<=1000

60%pts: n,k<=100000

80%pts: n,k<=1000000

100%pts: n,k<=10000000