#include<iostream>
#include<queue>
using namespace std;
class LegoBrick{
private:
double width, height;
string color;
public:
LegoBrick(double w, double h):width(w),height(h){
}
void print() const{
cout<<width<<" "<<height<<endl;
}
const double area(){
return width*height;
}
};
struct CMP{
bool operator()(LegoBrick& a, LegoBrick& b){
return a.area()<b.area();
}
};
int main(){
vector<LegoBrick> v= {LegoBrick{1,2},LegoBrick{2,4},LegoBrick{1,1},LegoBrick{4,2},LegoBrick{3,3},
LegoBrick{1,5},LegoBrick{2,2},LegoBrick{2,5}
};
priority_queue<LegoBrick, vector<LegoBrick>, CMP> fav(v.begin(), v.end());
for(int i=0; i<3; ++i){
fav.top().print();
fav.pop();
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHF1ZXVlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgTGVnb0JyaWNrewoJcHJpdmF0ZToKCWRvdWJsZSB3aWR0aCwgaGVpZ2h0OwoJc3RyaW5nIGNvbG9yOwoJcHVibGljOgoJTGVnb0JyaWNrKGRvdWJsZSB3LCBkb3VibGUgaCk6d2lkdGgodyksaGVpZ2h0KGgpewoJCQoJfQoJdm9pZCBwcmludCgpIGNvbnN0ewoJCWNvdXQ8PHdpZHRoPDwiICI8PGhlaWdodDw8ZW5kbDsKCX0KCWNvbnN0IGRvdWJsZSBhcmVhKCl7CgkJcmV0dXJuIHdpZHRoKmhlaWdodDsKCX0KfTsKc3RydWN0IENNUHsKCWJvb2wgb3BlcmF0b3IoKShMZWdvQnJpY2smIGEsIExlZ29CcmljayYgYil7CgkJcmV0dXJuIGEuYXJlYSgpPGIuYXJlYSgpOwoJfQp9OwppbnQgbWFpbigpewoJdmVjdG9yPExlZ29Ccmljaz4gdj0ge0xlZ29Ccmlja3sxLDJ9LExlZ29Ccmlja3syLDR9LExlZ29Ccmlja3sxLDF9LExlZ29Ccmlja3s0LDJ9LExlZ29Ccmlja3szLDN9LAoJCUxlZ29Ccmlja3sxLDV9LExlZ29Ccmlja3syLDJ9LExlZ29Ccmlja3syLDV9CQoJfTsKCXByaW9yaXR5X3F1ZXVlPExlZ29CcmljaywgdmVjdG9yPExlZ29Ccmljaz4sIENNUD4gZmF2KHYuYmVnaW4oKSwgdi5lbmQoKSk7Cglmb3IoaW50IGk9MDsgaTwzOyArK2kpewoJCWZhdi50b3AoKS5wcmludCgpOwoJCWZhdi5wb3AoKTsKCX0KCXJldHVybiAwOwp9