#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n < 1 || n > 10) {
cout << "Invalid size";
return 0;
}
int a[10][10];
for (int i = 0; i < n; i = i + 1) {
for (int j = 0; j < n; j = j + 1) {
if (!(cin >> a[i][j])) {
cout << "Invalid matrix";
return 0;
}
}
}
int k;
string flag;
cin >> k >> flag;
if (k < 1 || k > 3 || (flag != "main" && flag != "anti")) {
cout << "Invalid parameters";
return 0;
}
int p = 0;
while (p < k) {
// транспонирование
for (int i = 0; i < n; i = i + 1) {
for (int j = i + 1; j < n; j = j + 1) {
int temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
// разворот строк
for (int i = 0; i < n; i = i + 1) {
for (int j = 0; j < n / 2; j = j + 1) {
int temp = a[i][j];
a[i][j] = a[i][n - 1 - j];
a[i][n - 1 - j] = temp;
}
}
p = p + 1;
}
if (flag == "main") {
for (int i = 0; i < n; i = i + 1) {
for (int j = i + 1; j < n; j = j + 1) {
int temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
} else {
for (int i = 0; i < n; i = i + 1) {
for (int j = 0; j < n - i - 1; j = j + 1) {
int temp = a[i][j];
a[i][j] = a[n - 1 - j][n - 1 - i];
a[n - 1 - j][n - 1 - i] = temp;
}
}
}
for (int i = 0; i < n; i = i + 1) {
for (int j = 0; j < n; j = j + 1) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}