#include<iostream>
template <class T>
void foo()
{
int N = 10;
int M = 2;
T a[] = { 2,1,4,3,6,5,8,7,10,9 };
T(*b)[5] = (T(*)[5]) a;
for (int i = 0; i<M; i++) {
for (int j = 0; j<N / M; j++) {
std::cout << b[i][j] << ' ';
}
std::cout << '\n';
}
std::cout << '\n';
}
int main() {
foo<int>();
foo<short>();
foo<float>();
foo<double>();
}
I2luY2x1ZGU8aW9zdHJlYW0+Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4Kdm9pZCBmb28oKQp7CiAgICBpbnQgTiA9IDEwOwogICAgaW50IE0gPSAyOwogICAgVCBhW10gPSB7IDIsMSw0LDMsNiw1LDgsNywxMCw5IH07CiAgICAKICAgIFQoKmIpWzVdID0gKFQoKilbNV0pIGE7CiAgICBmb3IgKGludCBpID0gMDsgaTxNOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgajxOIC8gTTsgaisrKSB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBiW2ldW2pdIDw8ICcgJzsKICAgICAgICB9CgkJc3RkOjpjb3V0IDw8ICdcbic7CiAgICB9CglzdGQ6OmNvdXQgPDwgJ1xuJzsKfQoKCgppbnQgbWFpbigpIHsKCWZvbzxpbnQ+KCk7Cglmb288c2hvcnQ+KCk7Cglmb288ZmxvYXQ+KCk7Cglmb288ZG91YmxlPigpOwp9