#include <iostream>
#include <vector>
#include <algorithm>
typedef int T;
int main() {
std::vector<std::vector<T>> vec = {
{2, 8, 1, 4},
{3, 7, 6, 7},
{3, 3, 4, 9},
{8, 6, 3, 4},
{7, 1, 5, 7}
};
int idx = 2;
std::sort(vec.begin(), vec.end(), [idx](const std::vector<T>& a, const std::vector<T>& b) {
return a.at(idx) < b.at(idx);
});
for (size_t i = 0; i < vec.size(); i++) {
for (size_t j = 0; j < vec[i].size(); j++) {
std::cout << vec[i][j] << (j + 1 < vec[i].size() ? ' ' : '\n');
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdHlwZWRlZiBpbnQgVDsKCmludCBtYWluKCkgewogICAgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8VD4+IHZlYyA9IHsKICAgICAgICB7MiwgOCwgMSwgNH0sCiAgICAgICAgezMsIDcsIDYsIDd9LAogICAgICAgIHszLCAzLCA0LCA5fSwKICAgICAgICB7OCwgNiwgMywgNH0sCiAgICAgICAgezcsIDEsIDUsIDd9CiAgICB9OwogICAgaW50IGlkeCA9IDI7CiAgICBzdGQ6OnNvcnQodmVjLmJlZ2luKCksIHZlYy5lbmQoKSwgW2lkeF0oY29uc3Qgc3RkOjp2ZWN0b3I8VD4mIGEsIGNvbnN0IHN0ZDo6dmVjdG9yPFQ+JiBiKSB7CiAgICAgICAgcmV0dXJuIGEuYXQoaWR4KSA8IGIuYXQoaWR4KTsKICAgIH0pOwogICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyBpKyspIHsKICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHZlY1tpXS5zaXplKCk7IGorKykgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgdmVjW2ldW2pdIDw8IChqICsgMSA8IHZlY1tpXS5zaXplKCkgPyAnICcgOiAnXG4nKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=