# orxor1 
# Fig. 26.3 
# input: 10 10

import random

n,max = map(int, input("n max=? ").split())
x = [random.choice([True, False]) for i in range(n)]
y = [False]*n
for _ in range(max):
  y[0] = x[n-1] ^ (x[0] or x[1])  # ^ is Python's xor
  y[n-1] = x[n-2] ^ (x[n-1] or x[0])
  for i in range(1,n-2): 
    y[i] = x[i-1] ^ (x[i] or x[i+1])
  for i in range(n):
    print(int(y[i]), end=' ')  # 0,1 instead of False, True
  print()
  for i in range(n):
    x[i] = y[i]
