n=gets.to_i if n==1 puts "001";exit end a=Array.new(n){Array.new(n)} def right(vx,vy) return [0,1] if vx==1 return [-1,0] if vy==1 return [0,-1] if vx==-1 return [1,0] end x=0;y=0;vx=1;vy=0;count=1 while (!a[y][x]) a[y][x]=count count+=1 x+=vx;y+=vy if x<0||y<0||n<=x||n<=y||a[y][x]!=nil x-=vx;y-=vy vx,vy=right(vx,vy) x+=vx;y+=vy end end a.each{|e| puts e.map{|f| sprintf("%03d",f)}*" " }