#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct A {
int x;
static bool compare(const A& s1, const A& s2) {
return s1.x < s2.x;
}
A(int z) : x(z) {}
};
struct B : public A {
B(int z) : A(z) {}
};
int main() {
vector<B> v;
v.push_back(B(1));
v.push_back(B(7));
v.push_back(B(3));
v.push_back(B(6));
v.push_back(B(2));
sort(v.begin(), v.end(), A::compare);
for(int i=0;i!=v.size();i++)
cout << v[i].x << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBBIHsKICAgIGludCB4OwpzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0IEEmIHMxLCBjb25zdCBBJiBzMikgewogICAgcmV0dXJuIHMxLnggPCBzMi54Owp9CkEoaW50IHopIDogeCh6KSB7fQp9OwoKc3RydWN0IEIgOiBwdWJsaWMgQSB7CiAgICBCKGludCB6KSA6IEEoeikge30KfTsKCmludCBtYWluKCkgewoJdmVjdG9yPEI+IHY7CiAgICB2LnB1c2hfYmFjayhCKDEpKTsKICAgIHYucHVzaF9iYWNrKEIoNykpOwogICAgdi5wdXNoX2JhY2soQigzKSk7CiAgICB2LnB1c2hfYmFjayhCKDYpKTsKICAgIHYucHVzaF9iYWNrKEIoMikpOwogICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCksIEE6OmNvbXBhcmUpOwogICAgZm9yKGludCBpPTA7aSE9di5zaXplKCk7aSsrKQogICAgICAgIGNvdXQgPDwgdltpXS54IDw8IGVuZGw7CiAgICAKCXJldHVybiAwOwp9