import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sa = br.readLine().split(" "); int h = Integer.parseInt(sa[0]); int w = Integer.parseInt(sa[1]); br.close(); int ans = h * w; int[][] a = new int[h][w]; for (int i = 0; i < h; i++) { Arrays.fill(a[i], 1); } if (h % 2 == 0) { if (w % 2 == 0) { } else { ans -= h; for (int i = 0; i < h; i++) { a[i][w - 1] = 0; } } } else { if (w % 2 == 0) { ans -= w; Arrays.fill(a[h - 1], 0); } else { ans -= Math.max(h, w); for (int i = 0; i < h; i++) { a[i][Math.min(i, w - 1)] = 0; } for (int i = h; i < w; i++) { a[h - 1][i] = 0; } } } System.out.println(ans); for (int i = 0; i < h; i++) { StringBuilder sb = new StringBuilder(); for (int j = 0; j < w; j++) { sb.append(a[i][j]).append(' '); } sb.deleteCharAt(sb.length() - 1); System.out.println(sb.toString()); } } }