#include \u0026lt;vector> \u0026lt;algorithm> \u0026lt;map> \u0026lt;set> \nusing namespace std; \n\nint main() { \n int n, k; \n cin >> n >> k; \n vector a(n); \n for (int i = 0; i < n; i++) { \n cin >> a[i]; \n } \n \n if (k == 0) { \n // 如果k为0,那么所有数都可能成为众数 \n set ans; \n for (int i = 0; i < n; i++) { \n ans.insert(a[i]); \n } \n cout << ans.size() << endl; \n } else if (k >= 3) { \n // 如果k大于等于3,那么无论如何操作,众数一定是a中的某个数 \n set ans; \n for (int i = 0; i < n; i++) { \n ans.insert(a[i]); \n } \n cout << ans.size() << endl; \n } else if (k == 1) { \n // 如果k为1,那么只要a中有两个相同的数,答案就是无穷大 \n bool has_duplicate = false; \n for (int i = 0; i < n; i++) { \n for (int j = i + 1; j < n; j++) { \n if (a[i] == a[j]) { \n has_duplicate = true; \n break; \n } \n } \n if (has_duplicate) { \n break; \n } \n } \n if (has_duplicate) { \n cout << "pigstd" << endl; \n } else { \n cout << n << endl; \n } \n } else if (k == 2) { \n // 如果k为2,只要a中有三个相同的数,答案就是无穷大 \n map<int, int> count; \n for (int i = 0; i < n; i++) { \n count[a[i]]++; \n } \n bool has_triple = false; \n for (auto it = count.begin(); it != count.end(); it++) { \n if (it->second >= 3) { \n has_triple = true; \n break; \n } \n } \n if (has_triple) { \n cout << "pigstd" << endl; \n } else { \n cout << count.size() << endl; \n } \n } \n \n return 0; \n}