my program is showing no such element expectation error pls correct it
Scanner scn=new Scanner(System.in);
int m=scn.nextInt();
int n=scn.nextInt();
int [][] a=new int[m][n];
int [][] arr= takeInput(a,m,n);
// display(arr,m,n);
printSpiralOrder(a,m,n);
}
public static int[][] takeInput(int[][] a,int m, int n) {
Scanner scn=new Scanner(System.in);
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
a[i][j]=scn.nextInt();
}
}
return a;
}
//public static void display(int[][] arr,int m, int n) {
// for(int i=0;i<m;i++) {
// for(int j=0;j<n;j++) {
// System.out.println(arr[i][j]);
// }
// }
//}
public static void printSpiralOrder(int [][] arr, int m,int n) {
int t=0;
int b=m-1;
int l=0;
int r=n-1;
int dir=0;
while(t<=b &&l<=r) {
if(dir==0) {
for(int k=l;k<=r;k++) {
System.out.println(arr[t][k]);
}
t++;dir=1;
}else if(dir==1) {
for(int k=t;k<=b;k++) {
System.out.println(arr[k][r]);
}r--;dir=2;
}else if(dir==2) {
for(int k=r;k>=l;k--) {
System.out.println(arr[b][k]);
}b--;dir=3;
}else if(dir==3) {
for(int k=b;k>=t;k--) {
System.out.println(arr[k][l]);
}l++;dir=0;
}
}