#1336. FLU - Dịch cúm

Bộ nhớ: 256 MiB Thời gian: 500 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Nguồn: Bài tập thầy Nguyễn Thanh Bình Ôn ĐT Hải Phòng T10/2020

Tại thung lũng Silicon, một dịch cúm lạ xuất hiện và nhanh chóng lây lan trong cộng đồng các lập trình viên. Dịch cúm này lạ là nó chỉ lây trên các lập trình viên và lây qua mã nhận dạng (ID number) vào khu vục của các lập trình viên.

Mỗi người khi bị lây sẽ mắc dịch trong một ngày. Trong một mùa dịch, một người có thể bị lây nhiều lần (hiện tại vẫn chưa có vắc-xin phòng dịch).

M lập trình viên trong thung lũng Silicon, mỗi lập trình viên có mã nhận dạng duy nhất là một số nguyên nằm trong khoảng từ 0 đến M-1 .

Ở trong ngày đầu tiên, một số người mắc bệnh từ những tác nhân ở bên ngoài. ID number của những người này được thông báo ngay lập tức. Những người này là những người mang mầm bệnh và dịch cúm được phát tán trong cộng đồng qua họ. Ta gọi nhóm người này là B .

Từ ngày thứ hai trở đi, người mang mã nhận dạng p bị nhiễm bệnh khi và chỉ khi tồn tại một người có mã nhận dạng a bị nhiễm ở ngày hôm trước và một người có mã nhận dạng b \in B sao cho: (a \times b)\text{ mod }M =p .

Các số a b không cần phải khác nhau. Lấy làm ví dụ, giả sử có 100 lập trình viên và những lập trình viên mang mầm bệnh là 5 50 . Ở ngày thứ nhất chỉ các lập trình viên này mắc bệnh theo định nghĩa. Ở ngày thứ hai các lập trình viên 25=(5\times 5)\text{ mod }100, 48=(5\times 50)\text{ mod }100 76=(50\times 50)\text{ mod }100 bị mắc bệnh.

Hỏi rằng những lập trình viên nào bị mắc bệnh trong ngày thứ K ?

Dữ liệu vào:

  • Dòng đầu tiên ghi ba số nguyên dương K, M N\ (1 \le K \le {10^{18}},3 \le M \le 1500,N < M) ;
  • Dòng thứ hai ghi N số nguyên không âm cách nhau bởi khoảng trắng là mã nhận dạng của các lập trình viên bị mắc bệnh trong ngày đầu tiên. Các số này là duy nhất, tăng dần và không vượt quá M-1 .

Dữ liệu ra:

  • Ghi một dòng duy nhất chứa mã nhận dạng (ID number) của các lập trình viên bị mắc bệnh trong ngày thứ K . Các mã này liệt kê theo thứ tự tăng dần.

Ví dụ:

Dữ liệu vào:
1 100 3 
0 2 3
Dữ liệu ra:
0 2 3
Dữ liệu vào:
2 100 3
0 2 3
Dữ liệu ra:
0 2 3 4 6 9
Dữ liệu vào:
10 100 2
5 50
Dữ liệu ra:
36 44 57 65