#include #include #include #define MAX_N 100005 int N, R; int x[MAX_N]; int y[MAX_N]; bool within_range(long long ax, long long ay, long long bx, long long by) { long long dx = ax - bx, dy = ay - by; return dx * dx + dy * dy < 4LL * R * R; } int main() { FILE *input_file = fopen("mars.in", "r"); FILE *output_file = fopen("mars.out", "w"); fscanf(input_file, "%d %d", &N, &R); for (int i = 1; i <= N; ++i) fscanf(input_file, "%d %d", &x[i], &y[i]); bool reachable[MAX_N] = {false}; reachable[1] = true; for (int i = 2; i <= N; ++i) { bool is_new = true; for (int j = 1; j < i; ++j) { if (reachable[j] && within_range(x[i], y[i], x[j], y[j])) { is_new = false; break; } } if (is_new) reachable[i] = true; } int reachable_count = 0; for (int i = 1; i <= N; ++i) { if (reachable[i]) reachable_count++; } fprintf(output_file, "%d\n", reachable_count); for (int i = 1; i <= N; ++i) { if (reachable[i]) fprintf(output_file, "%d ", i); } fclose(input_file); fclose(output_file); return 0; }