""" 4000 C 2000 通りが最大である 2N C N """ import sys from sys import stdin from collections import deque N = int(stdin.readline()) if N == 1: print (1,1) print (".") sys.exit() lis = [] q = deque([N]) while q: v = q.popleft() if v == 1: continue elif v == 2: lis.append( (2,2) ) else: a = v // 2 b = v - a lis.append( (a+1,b+1) ) q.append( a ) q.append( b ) s = 0 for a,b in lis: s += min(a,b) H = 1 W = 1 for a,b in lis: a,b = min(a,b),max(b,a) if H >= W: H += a-1 W += b-1 else: H += b-1 W += a-1 ans = [ ["#"] * W for i in range(H) ] H = 1 W = 1 for a,b in lis: a,b = min(a,b),max(b,a) if H >= W: for i in range(a): for j in range(b): ans[H-1+i][W-1+j] = "." H += a-1 W += b-1 else: for j in range(a): for i in range(b): ans[H-1+i][W-1+j] = "." H += b-1 W += a-1 print (H,W) for i in ans: print ("".join(i))