#include <vector> #include <iostream> using i64 = long long; int main() { i64 n; std::cin >> n; if (n == 0) { std::cout << "1 1\n.\n"; return 0; } i64 total = n; i64 width = 0; auto heights = std::vector<int>{}; while (total) { i64 here = 0; i64 bw = 0; for (i64 w = 2; w <= 2025; w++) { i64 bh = 0; for (i64 h = 2; h <= 2025; h++) { auto q = here + (w - 1) * (h - 1); if (q > total) { if (h == 2) goto next; break; } here = q; bw = w; bh = h; } heights.push_back(bh); if (w == 2) heights.push_back(bh); } next:; width += bw + 1; // std::cout << here << '\n'; total -= here; heights.push_back(0); } std::cout << heights.size() - 1 << ' ' << 2025 << '\n'; heights.pop_back(); for (auto w : heights) { std::string s; for (int i = 0; i < w; i++) s.push_back('#'); for (int i = w; i < 2025; i++) s.push_back('.'); std::cout << s << '\n'; } }