/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
Scanner sc
= new Scanner
(System.
in); int r = sc.nextInt();
int c = sc.nextInt();
List
<ArrayList
<Integer
>> Arr
= new ArrayList(); for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
ar.add(sc.nextInt());
}
Arr.add(ar);
}
spiralPrint(Arr);
}
public static void spiralPrint(List<ArrayList<Integer>>Arr){
int i = 0, j=0;
int r = Arr.size()-1;
int c = Arr.get(0).size()-1;
while(true){
if(i == r && j==c){
break;
}
else if(i==r){
for(int k = j;k<=c;k++){
result.add(Arr.get(i).get(k));
}
break;
}
else if(j==c){
for(int k = i; k<=r;k++){
result.add(Arr.get(k).get(j));
}
break;
}
else{
for(int k=j;k<=c;k++){
System.
out.
println(Arr.
get(i
).
get(k
)); result.add(Arr.get(i).get(k));
}
for(int k=i+1;k<r;k++){
System.
out.
println(Arr.
get(k
).
get(c
)); result.add(Arr.get(k).get(c));
}
for(int k=c;k>=j;k--){
System.
out.
println(Arr.
get(r
).
get(k
)); result.add(Arr.get(r).get(k));
}
for(int k = r-1; k>i;k--){
System.
out.
println(Arr.
get(k
).
get(j
)); result.add(Arr.get(k).get(j));
}
// System.out.println("i - "+ i + " j - "+ j + "r - "+ r + " c - "+c);
if(i+1<=r-1 && j+1 <= c-1){
i++;
j++;
r--;
c--;
}
else{
break;
}
}
}
for(int kk=0;kk<result.size();kk++){
System.
out.
print(result.
get(kk
)+" "); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IHIgPSBzYy5uZXh0SW50KCk7CgkJaW50IGMgPSBzYy5uZXh0SW50KCk7CgoJCUxpc3Q8QXJyYXlMaXN0PEludGVnZXI+PiBBcnIgPSBuZXcgQXJyYXlMaXN0KCk7CgkJZm9yKGludCBpPTA7aTxyO2krKyl7CgkJCUFycmF5TGlzdDxJbnRlZ2VyPiBhciA9IG5ldyBBcnJheUxpc3QoKTsKCQkJZm9yKGludCBqPTA7ajxjO2orKyl7CgkJCQlhci5hZGQoc2MubmV4dEludCgpKTsKCQkJfQoJCQlBcnIuYWRkKGFyKTsKCQl9CgkJc3BpcmFsUHJpbnQoQXJyKTsKCQkKCX0KCQoJCglwdWJsaWMgc3RhdGljIHZvaWQgc3BpcmFsUHJpbnQoTGlzdDxBcnJheUxpc3Q8SW50ZWdlcj4+QXJyKXsKCQlBcnJheUxpc3Q8SW50ZWdlcj4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgpOwoJCWludCBpID0gMCwgaj0wOwoJCWludCByID0gQXJyLnNpemUoKS0xOwoJCWludCBjID0gQXJyLmdldCgwKS5zaXplKCktMTsKCQl3aGlsZSh0cnVlKXsKCQkJaWYoaSA9PSByICYmIGo9PWMpewoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSBpZihpPT1yKXsKCQkJCWZvcihpbnQgayA9IGo7azw9YztrKyspewoJCQkJCXJlc3VsdC5hZGQoQXJyLmdldChpKS5nZXQoaykpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCX0KCQkJZWxzZSBpZihqPT1jKXsKCQkJCWZvcihpbnQgayA9IGk7IGs8PXI7aysrKXsKCQkJCQlyZXN1bHQuYWRkKEFyci5nZXQoaykuZ2V0KGopKTsKCQkJCX0KCQkJCWJyZWFrOwoJCQl9CgkJCWVsc2V7CgkJCQlmb3IoaW50IGs9ajtrPD1jO2srKyl7CgkJCQkJU3lzdGVtLm91dC5wcmludGxuKEFyci5nZXQoaSkuZ2V0KGspKTsKCQkJCQlyZXN1bHQuYWRkKEFyci5nZXQoaSkuZ2V0KGspKTsKCQkJCX0KCQkJCWZvcihpbnQgaz1pKzE7azxyO2srKyl7CgkJCQkJU3lzdGVtLm91dC5wcmludGxuKEFyci5nZXQoaykuZ2V0KGMpKTsKCQkJCQlyZXN1bHQuYWRkKEFyci5nZXQoaykuZ2V0KGMpKTsKCQkJCX0KCQkJCWZvcihpbnQgaz1jO2s+PWo7ay0tKXsKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oQXJyLmdldChyKS5nZXQoaykpOwoJCQkJCXJlc3VsdC5hZGQoQXJyLmdldChyKS5nZXQoaykpOwoJCQkJfQoJCQkJZm9yKGludCBrID0gci0xOyBrPmk7ay0tKXsKCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oQXJyLmdldChrKS5nZXQoaikpOwoJCQkJCXJlc3VsdC5hZGQoQXJyLmdldChrKS5nZXQoaikpOwoJCQkJfQoJCQkJLy8gU3lzdGVtLm91dC5wcmludGxuKCJpIC0gIisgaSArICIgaiAtICIrIGogKyAiciAtICIrIHIgKyAiIGMgLSAiK2MpOwoJCQkJaWYoaSsxPD1yLTEgJiYgaisxIDw9IGMtMSl7CgkJCQkJaSsrOwoJCQkJCWorKzsKCQkJCQlyLS07CgkJCQkJYy0tOwkJCQkJCgkJCQl9CgkJCQllbHNlewoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJfQoJCQoJCWZvcihpbnQga2s9MDtrazxyZXN1bHQuc2l6ZSgpO2trKyspewoJCQlTeXN0ZW0ub3V0LnByaW50KHJlc3VsdC5nZXQoa2spKyIgIik7CgkJfQoJCQoJfQp9