#include <iostream>
using namespace std;
#include <vector>
template <typename T>
std::vector<T> flatten(const std::vector<std::vector<T>> & vec) {
std::vector<T> result;
for (const auto & v : vec)
result.insert(result.end(), v.begin(), v.end());
return result;
}
int main() {
vector<vector<int>> v = {
{ 8, 7, 6, 3 },
{ 2, 1, 9, 4 },
{ 1, 2, 3, 8 }
};
auto flat = flatten(v);
for (auto i : flat)
cout << i << " ";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6dmVjdG9yPFQ+IGZsYXR0ZW4oY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8VD4+ICYgdmVjKSB7ICAgCiAgICBzdGQ6OnZlY3RvcjxUPiByZXN1bHQ7CiAgICBmb3IgKGNvbnN0IGF1dG8gJiB2IDogdmVjKQogICAgICAgIHJlc3VsdC5pbnNlcnQocmVzdWx0LmVuZCgpLCB2LmJlZ2luKCksIHYuZW5kKCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpIHsKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gdiA9IHsKCQl7IDgsIDcsIDYsIDMgfSwKCQl7IDIsIDEsIDksIDQgfSwKCQl7IDEsIDIsIDMsIDggfQoJfTsKCWF1dG8gZmxhdCA9IGZsYXR0ZW4odik7Cglmb3IgKGF1dG8gaSA6IGZsYXQpCgkJY291dCA8PCBpIDw8ICIgIjsKCXJldHVybiAwOwp9