#! /bin/awk -f # You are not supposed to understand this. :-) BEGIN{for(i=int((n=ARGV[1])/2);!s[j%=n,i%=n];(s[j,i++]=++k)&& s[j+=n*!j-1,i%=n]&&j++(i+=n-1)++j)a[n-1]="\n" for(i=j;n-i;i+=!(j%=n))printf"% 3d"a[j],s[i,j++];exit}