#include <iostream>
using namespace std;

#define row_size 4

void print_matrix(int matrix[][row_size], int col_size)
{
	for(int i = 0; i < col_size; i++) {
		for(int j = 0; j < row_size; j++) {
			cout << matrix[i][j] << " ";
		}
		cout << endl;
	}
}

int main() {
	// your code goes here
	int data[][row_size] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
	int col_size = sizeof(data) / sizeof(data[0]);
	print_matrix(data, col_size);
	
	int index_shift = row_size / 2 + row_size % 2;
	
	for(int i = 0; i < col_size; i++) 
	{
		for(int j = 0; j < row_size/2; j++)
		{
			int swap = data[i][j];
			data[i][j] = data[i][ index_shift + j];
			data[i][index_shift + j] = swap;
		}
	}
	cout << "--------------" << endl;
	print_matrix(data, col_size);
}