#include <iostream>
#include <stack>

int main(){
	int t, tmax, n;
	int day_new_task;	// День получения новой задачи
	int day_last_task = 0;	// День получения предыдущей

	std::stack<int> s;

	std::cin >> t;	//Количество дней, которое тратится на любую задачу
	std::cin >> tmax;	// Количество дней в курсе
	std::cin >> n;	// Количество задач в курсе

	// В цикле рассматриваем задачи с 1 по n-ю
	for(int i = 1; i <= n; i++){
		std::cin >> day_new_task;	//День, в который получена i-я задача
		if(day_last_task == 0) day_last_task = day_new_task;	//День, в который получена предыдущая задача
		
		// Если при получении новой задачи студент еще решает старую
		// Дополнительное условие: дни получения новой и текущей задачи не равны
		// Запоминаем задачу, которую студент не решил
		if((day_new_task - day_last_task < t) && (day_new_task ^ day_last_task))
			s.push(i);
		// Если студент свободен, даем ему новую задачу
		if(day_new_task - day_last_task >= t)
			day_last_task = day_new_task;
	}

	std::cout << s.size() << std::endl;
	while(!s.empty()){
		std::cout << s.top() << " ";
		s.pop();
	}

	int pause;
	std::cin >> pause;
}