#include <bits/stdc++.h> using namespace std; #define int int64_t const int HW = 2025; char ans[HW][HW]; int siz(int h, int w) { return h*(h-1)*w*(w-1)/4; } array<int,2> find(int h, int w, int k) { array<int,2> ans={-1,-1}; int bd=k; for(int hh=2; hh<=h; ++hh) { for(int ww=2; ww<=w; ++ww) { int t = siz(hh,ww); if(t>k) break; if(k-t>=0 && bd>k-t) { ans={hh,ww}; bd=k-t; } } } return ans; } bool f(int h, int w, int k) { //cerr<<h<<' '<<w<<' '<<k<<endl; auto [hh,ww] = find(h,w,k); if(siz(hh,ww)==k) { for(int i=h-hh; i<h; ++i) { for(int j=w-ww; j<w; ++j) { ans[i][j]='.'; } } return 1; } else if(hh>=h-1 || ww>=w-1) { auto [hh2,ww2] = find(h-1,w-1,k); hh=hh2; ww=ww2; } if(hh==-1) return 0; for(int i=h-hh; i<h; ++i) { for(int j=w-ww; j<w; ++j) { ans[i][j]='.'; } } if(h-hh-1>w-ww-1) { h-=hh+1; // use the last hh+1 rows } else { w-=ww+1; } k-=siz(hh,ww); if(k==0) return 1; return f(h,w,k); } signed main() { cin.tie(0); ios_base::sync_with_stdio(0); for(int i=0; i<HW; ++i) { for(int j=0; j<HW; ++j) { ans[i][j]='#'; } } int k; cin>>k; if(k==0) { cout<<"1 1\n#\n"; return 0; } cerr<<f(HW,HW,k)<<'\n'; cout<<HW<<' '<<HW<<'\n'; for(int i=0; i<HW; ++i) { for(int j=0; j<HW; ++j) { cout<<ans[i][j]; } cout<<'\n'; } return 0; }