import java.lang.String;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
while((line = br.readLine()) != null) {
String[] strWH = line.split(" ");
int h = Integer.parseInt(strWH[1]), w = Integer.parseInt(strWH[0]);
solve(h, w);
}
}
private static void solve(int m, int n) {
int[][] arr = new int[m][n];
int idx = 0, start = 0;
int left = 0, right = n - 1, top = 0, bottom = m - 1;
while(idx <= m * n){
for(int i = left; i <= right; i++){
arr[top][i] = start;
idx ++;
}
top ++;
if(top > bottom) break;
start ++;
for(int i = top; i <= bottom; i++){
arr[i][right] = start;
idx ++;
}
right --;
if(left > right) break;
start ++;
for(int i = right; i >= left; i--){
arr[bottom][i] = start;
idx ++;
}
bottom --;
if(top > bottom) break;
start ++;
for(int i = bottom; i >= top; i--){
arr[i][left] = start;
idx ++;
}
left ++;
if(left > right) break;
start ++;
}
StringBuilder sb;
for(int i = 0; i
sb = new StringBuilder();
for(int j = 0; j
sb.append(arr[i][j]);
System.out.println(sb.toString());
}
}
}