#include <queue>
#include <vector>
using namespace std;
long long n, k, maxn = -1, ans;
long long a[1000009];
priority_queue<long long, vector<long long>, greater<long long> > vec1;
vector<long long> vec;
int main(){
cin >> n >> k;
for(long long i = 1; i <= n; i++){
long long g;
cin >> g;
a[g]++;
if(a[g] > maxn)maxn = a[g];
}
if(maxn <= k && k != 0){
cout << "pigstd";
return 0;
}
for(long long i = 0; i < 1000009; i++){
if(a[i]){
vec.push_back(a[i]);
vec1.push(a[i]);
}
}
priority_queue<long long> q;
for(long long j = 0; j < vec.size(); j++){
q.push(vec[j]);
}
for(long long j = 1; j <= k; j++){
q.push(q.top() - 1);
q.pop();
if(k - j >= q.top()){
cout << "pigstd";
return 0;
}
}
for(long long i = 0; i < vec.size(); i++){
if(vec1.top() + k >= q.top()){
cout << vec.size() - i;
return 0;
}
vec1.pop();
}
return 0;
}