def solve(N): if N==2: return [[0,0],[1,2]] elif N%4==0: 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 else: tmp=solve(N-2) res=[[0 for j in range(N)]for i in range(N)] for i in range(N-2): for j in range(N-2): res[i+1][j+1]=tmp[i][j] for i in range(N-1): res[i][0]=2 res[0][i]=2 res[0][N-1]=1 return res N=int(input()) ans=solve(N) 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) assert len(S)==2*N for line in ans: print("".join([str(x) for x in line]))