def solve(H,W): A=[[0]*W for _ in range(H)] if H==1 or W==1: pass elif H%2==0: if W%2==0: for i in range(H): a=A[i] for j in range(W): a[j]=1 else: for i in range(H): a=A[i] for j in range(W-1): a[j]=1 else: if W%2==0: for i in range(H-1): a=A[i] for j in range(W): a[j]=1 else: if H>W: flag=1 H,W=W,H A=[list(a[::-1]) for a in zip(*A)] else: flag=0 for i in range(H): for j in range(W): if not((i==j) or ((i==H-1) and (j>=H))): A[i][j]=1 if flag: A=[list(a[::-1]) for a in zip(*A)] X=0 for a in A: X+=sum(a) return X,A H,W=map(int,input().split()) X,A=solve(H,W) print(X) for a in A: print(*a)