N=4<<input() print'','_'*~-N for I in range(N/4):f=lambda j,i=I,n=N/8:n and(-f(i,j%n,n/2),f(j-n,i%n,n/2))[0<j/n<3]or~j;print'|'+''.join(' __'[f(j)]+' ||_'[f(j)]for j in range(N/2))
Note that non-ascii characters in the above source code will be escaped (such as \x9f).