def solve(N): if N==2: return [[0,0],[1,2]] elif not(N in {2,4,8,16,32,64,128,256,512}): return None else: tmp=solve(N//2) res=[] for i in range(N//2): res.append([0 for i in range(N//2)]+tmp[i]) for i in range(N//2): res.append(tmp[i]+[2 for i in range(N//2)]) return res N=int(input()) ans=solve(N) if ans==None: print("No") exit() A=[0 for i in range(N)] B=[0 for i in range(N)] for i in range(N): for j in range(N): A[i]+=ans[i][j] B[j]+=ans[i][j] S=set(A+B) for line in ans: print("".join([str(x) for x in line]))