static bool comp(pair<int,int>&a,pair<int,int> &b)
{
if(a.second == b.second) return a.first > b.first;
return a.second > b.second;
}
vector<int> topK(vector<int>& nums, int k) {
// Code here
unordered_map<int,int> m;
vector<pair<int,int>> ans;
for(int i=0;i<nums.size();i++)
m[nums[i]]++;
for(auto it: m)
ans.push_back(it);
sort(ans.begin(),ans.end(),comp);
vector<int> a;
for (int i = 0; i < k && i < ans.size(); i++)
a.push_back(ans[i].first);
return a;
}