(1)从最左侧s点开始找在s+R范围内的最右侧的e点,即为标记点;
(2)再从e点出发找最靠近s+R范围的点,更新s点,回到(1);
#include <iostream>
#include<algorithm>
using namespace std;
int r,n,p[1005];
void solve();
int main()
{
while(cin>>r>>n&&r!=-1||n!=-1){
for(int i=0;i<n;i++){
cin>>p[i];
}
sort(p,p+n);
solve();
}
return 0;
}
void solve(){
int ans=0,i=0;
while(i<n){
int s=p[i];
while(i<n&&p[i]<=s+r) ++i;
int e=p[i-1];
while(i<n&&p[i]<=e+r) ++i;
++ans;
}
cout<<ans<<endl;
}