//贪心 #include <iostream> #include <algorithm> using namespace std; int N, R; const int MAX_N = 1005; int X[MAX_N]; void solve() { sort(X, X + N); int i = 0, ans = 0; while (i < N) { // s是没有被覆盖的最左的点的位置 int s = X[i++]; // 一直向右移动直到距s的距离大于R的点 while (i < N && X[i] <= s + R) i++; // p是加上标记的点的位置 int p = X[i - 1]; // 一直前进直到距p的距离大于R的点 while (i < N && X[i] <= p + R) i++; ans++; } cout << ans << endl; } int main() { while (cin >> R >> N) { if (N == -1 && R == -1) break; for (int i = 0; i < N; i++) cin >> X[i]; solve(); } }