h,w=map(int,input().split()) if min(h,w)==0: print(0) for i in range(h): print(*[0]*w) exit() if h%2==0 and w%2==0: print(h*w) for i in range(h): print(*[1]*w) exit() if h%2==0: print(h*(w-1)) for i in range(h): print(*[1]*(w-1)+[0]) exit() if w%2==0: print((h-1)*w) for i in range(h-1): print(*[1]*w) print(*[0]*w) exit() ans=[[1]*w for i in range(h)] if h<=w: print((h-1)*w) for i in range(w): ans[min(i,h-1)][i]=0 else: print(h*(w-1)) for i in range(h): ans[i][min(i,w-1)]=0 for i in ans: print(*i)