from Queue import * def minfornn(a,b,n): l=[-1 for i in range(n)] matrix=[l[:] for i in range(n)] q=Queue() q.put((0,0)) matrix[0][0]=0 while not q.empty(): ele=q.get() if ele[0]+a=0 and ele[1]+b=0 and matrix[ele[0]+a][ele[1]+b]==-1: q.put((ele[0]+a,ele[1]+b)) matrix[ele[0]+a][ele[1]+b]=matrix[ele[0]][ele[1]]+1 if ele[0]+a=0 and ele[1]-b=0 and matrix[ele[0]+a][ele[1]-b]==-1: q.put((ele[0]+a,ele[1]-b)) matrix[ele[0]+a][ele[1]-b]=matrix[ele[0]][ele[1]]+1 if ele[0]-a=0 and ele[1]+b=0 and matrix[ele[0]-a][ele[1]+b]==-1: q.put((ele[0]-a,ele[1]+b)) matrix[ele[0]-a][ele[1]+b]=matrix[ele[0]][ele[1]]+1 if ele[0]-a=0 and ele[1]-b=0 and matrix[ele[0]-a][ele[1]-b]==-1: q.put((ele[0]-a,ele[1]-b)) matrix[ele[0]-a][ele[1]-b]=matrix[ele[0]][ele[1]]+1 if ele[0]+b=0 and ele[1]+a=0 and matrix[ele[0]+b][ele[1]+a]==-1: q.put((ele[0]+b,ele[1]+a)) matrix[ele[0]+b][ele[1]+a]=matrix[ele[0]][ele[1]]+1 if ele[0]+b=0 and ele[1]-a=0 and matrix[ele[0]+b][ele[1]-b]==-1: q.put((ele[0]+b,ele[1]-a)) matrix[ele[0]+b][ele[1]-a]=matrix[ele[0]][ele[1]]+1 if ele[0]-b=0 and ele[1]+a=0 and matrix[ele[0]-b][ele[1]+a]==-1: q.put((ele[0]-b,ele[1]+a)) matrix[ele[0]-b][ele[1]+a]=matrix[ele[0]][ele[1]]+1 if ele[0]-b=0 and ele[1]-a=0 and matrix[ele[0]-b][ele[1]-a]==-1: q.put((ele[0]-b,ele[1]-a)) matrix[ele[0]-b][ele[1]-a]=matrix[ele[0]][ele[1]]+1 return matrix[n-1][n-1] n = int(raw_input()) for i in range(n-1): for j in range(n-1): print minfornn(i+1,j+1,n), print