#include <vector>
#include <iostream>
using namespace std;
vector<vector<int>> split(const vector<int>& v, size_t n)
{
vector<vector<int>> r;
for(size_t i = 0, S = v.size(), m = (S+n-1)/n; i < m; ++i)
r.emplace_back(v.begin()+i*n,v.begin()+i*n+(i==m-1&&S%n?S%n:n));
return r;
}
int main(int argc, char * argv[])
{
for(auto a: split({1,2,3,4,5,6,7,8,9,10},3))
{
for(auto b: a) cout << b << " ";
cout << "\n";
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3Rvcjx2ZWN0b3I8aW50Pj4gc3BsaXQoY29uc3QgdmVjdG9yPGludD4mIHYsIHNpemVfdCBuKQp7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHI7CiAgICBmb3Ioc2l6ZV90IGkgPSAwLCBTID0gdi5zaXplKCksIG0gPSAoUytuLTEpL247IGkgPCBtOyArK2kpCiAgICAgICAgci5lbXBsYWNlX2JhY2sodi5iZWdpbigpK2kqbix2LmJlZ2luKCkraSpuKyhpPT1tLTEmJlMlbj9TJW46bikpOwogICAgcmV0dXJuIHI7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CiAgICBmb3IoYXV0byBhOiBzcGxpdCh7MSwyLDMsNCw1LDYsNyw4LDksMTB9LDMpKQogICAgewogICAgICAgIGZvcihhdXRvIGI6IGEpIGNvdXQgPDwgYiA8PCAiICAiOwogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgIH0KfQo=