import
java.io.*;
import
java.util.*;
class
GFG {
static
void
print(ArrayList<ArrayList<Integer>> mat,
int
N,
int
M)
{
for
(
int
i =
0
; i < N; i++) {
for
(
int
j =
0
; j < M; j++) {
System.out.print(mat.get(i).get(j) +
" "
);
}
System.out.println();
}
}
static
void
rotate(ArrayList<ArrayList<Integer>> mat)
{
int
N = mat.size();
int
M = mat.get(
0
).size();
for
(
int
i =
0
; i < Math.min(N, M); i++) {
for
(
int
j = i; j < Math.min(N, M); j++) {
int
temp = mat.get(i).get(j);
mat.get(i).set(j,mat.get(j).get(i));
mat.get(j).set(i,temp);
}
}
if
(N > M) {
for
(
int
i =
0
; i < M; i++) {
for
(
int
j = Math.min(N, M); j < N; j++) {
mat.get(i).add(mat.get(j).get(i));
}
}
}
else
{
mat =
new
ArrayList<>(M);
for
(
int
i=
0
;i<M;i++){
mat.add(i ,
new
ArrayList<>());
}
for
(
int
i = Math.min(N, M); i < M; i++) {
for
(
int
j =
0
; j < N; j++) {
mat.get(i).add(mat.get(j).get(i));
}
}
}
for
(
int
i =
0
; i < M; i++) {
Collections.reverse(mat.get(i));
}
print(mat, M, N);
}
public
static
void
main(String args[])
{
ArrayList<ArrayList<Integer>> mat =
new
ArrayList<>();
mat.add(
new
ArrayList<Integer>(Arrays.asList(
1
,
2
,
3
)));
mat.add(
new
ArrayList<Integer>(Arrays.asList(
4
,
5
,
6
)));
mat.add(
new
ArrayList<Integer>(Arrays.asList(
7
,
8
,
9
)));
mat.add(
new
ArrayList<Integer>(Arrays.asList(
10
,
11
,
12
)));
rotate(mat);
}
}