#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
template <typename M, typename V>
void mapValToVec(const M &m, V &v){
for (typename M::const_iterator it = m.begin(); it != m.end(); it++)
{
v.push_back(*it);
}
}
bool comp(const pair<int, int> &a, const pair<int, int> &b){
return a.second < b.second;
}
int main() {
typedef map<int, int> Map;
Map m = {{21, 55}, {11, 44}, {33, 11}, {10, 5}};
vector<pair<int, int>> v;
mapValToVec(m, v);
std::partial_sort(v.begin(), v.begin()+3, v.end(), comp);
for(int i = 0; i < 3; i++) cout << v[i].first << " " << v[i].second << " " <<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIE0sIHR5cGVuYW1lIFY+CnZvaWQgbWFwVmFsVG9WZWMoY29uc3QgTSAmbSwgViAmdil7Cglmb3IgKHR5cGVuYW1lIE06OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbS5iZWdpbigpOyBpdCAhPSBtLmVuZCgpOyBpdCsrKQoJewoJCXYucHVzaF9iYWNrKCppdCk7Cgl9Cn0KYm9vbCBjb21wKGNvbnN0IHBhaXI8aW50LCBpbnQ+ICZhLCBjb25zdCBwYWlyPGludCwgaW50PiAmYil7CglyZXR1cm4gYS5zZWNvbmQgPCBiLnNlY29uZDsKfQppbnQgbWFpbigpIHsKICAgIHR5cGVkZWYgbWFwPGludCwgaW50PiBNYXA7CiAgICBNYXAgbSA9IHt7MjEsIDU1fSwgezExLCA0NH0sIHszMywgMTF9LCB7MTAsIDV9fTsKICAgIHZlY3RvcjxwYWlyPGludCwgaW50Pj4gdjsKICAgIG1hcFZhbFRvVmVjKG0sIHYpOwogICAgc3RkOjpwYXJ0aWFsX3NvcnQodi5iZWdpbigpLCB2LmJlZ2luKCkrMywgdi5lbmQoKSwgY29tcCk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSBjb3V0IDw8IHZbaV0uZmlyc3QgPDwgIiAiIDw8IHZbaV0uc2Vjb25kIDw8ICIgIiA8PGVuZGw7CglyZXR1cm4gMDsKfQ==