#include using namespace std; void dfs(vector &A, vector &B, int N){ if (N >= 2){ A.push_back(N / 2); B.push_back(N - N / 2); dfs(A, B, N / 2); dfs(A, B, N - N / 2); } } int main(){ int N; cin >> N; vector A, B; dfs(A, B, N); int H = 1, W = 1; for (int i = 0; i < N - 1; i++){ H += A[i]; W += B[i]; } vector> S(H, vector(W, '#')); int sumA = 0, sumB = 0; for (int i = 0; i < N - 1; i++){ for (int j = 0; j <= A[i]; j++){ for (int k = 0; k <= B[i]; k++){ S[sumA + j][sumB + k] = '.'; } } sumA += A[i]; sumB += B[i]; } S[0][0] = '.'; cout << H << ' ' << W << endl; for (int i = 0; i < H; i++){ for (int j = 0; j < W; j++){ cout << S[i][j]; } cout << endl; } }