import sys from itertools import permutations from heapq import heappop,heappush from collections import deque import random import bisect input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) n,m = mi() A = [[0]*(2**m) for i in range(2**n)] for i in range(2**n): for j in range(2**m): for b in range(n): if i>>b & 1: A[i][j] ^= 1<<(b) for b in range(m): if j>>b & 1: A[i][j] ^= 1<<(b+n) print(*A[i])