#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll using pii = pair<int, int>; mt19937 rnd(42); const int M = 4e12 + 1; char a[2028][2028]; const int N = 2025; bool try_place(int n, int m) { for (int i = 0; i + n <= N; i++) { for (int j = 0; j + m <= N; j++) { bool g = 1; for (int x = 0; x < n && g; x++) { for (int y = 0; y < m && g; y++) { if (a[i + x][j + y] != '?') g = 0; } } if (g == 0) continue; for (int x = 0; x <= n; x++) { for (int y = 0; y <= m; y++) { if (x == n || y == m) a[i + x][j + y] = '.'; else a[i + x][j + y] = '#'; } } return true; } } return false; } void solve() { ll k = 1e9 + 7; cin >> k; int n = 2025; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) a[i][j] = '?'; } vector<pair<int, pii>> all; all.reserve(n * n); for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j++) { all.push_back({i * j * (i - 1) * (j - 1) / 4, {i, j}}); } } // cerr << all.size() << endl; int cnt = 0; sort(all.begin(), all.end(), greater()); for (auto [v, px]: all) { if (k == 0) break; while (k >= v) { if (!try_place(px.first, px.second)) break; k -= v; cnt++; } } // cout << cnt << " " << k << endl; cout << 2025 << " " << 2025 << endl; for (int i = 0; i < 2025; i++) { for (int j = 0; j < 2025; j++) { if (a[i][j] == '?') a[i][j] = '.'; cout << a[i][j]; } cout << "\n"; } // for (int i = 0; i < 10; i++) { // for (int j = 0; j < 10; j++) { // if (a[i][j] == '?') // a[i][j] = '.'; // cout << a[i][j]; // } // cout << "\n"; // } } int32_t main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); int tt = 1; // cin >> tt; for (int t = 0; t < tt; t++) { solve(); } return 0; }