#include #include using namespace std; int n, k, m; int main() { // freopen("paint.in", "r", stdin); // freopen("paint.out", "w", stdout); scanf("%d%d", &n, &k); int row = (n - 1) / k + 1; if (row % k == 1) { // 列数要特判 m = max(row, row - 1 + (n % (k * k))); } else { m = max(row, (row + k - 1) / k * k); } printf("%d\n", m); int finished = 0; for (int i = 1; i <= m; ++i) { int l, r; if (finished + k <= n) { l = (i - 1) / k * k + 1, r = l + k - 1; finished += k; } else { l = (i - 1) / k * k + 1, r = l + (n - finished) - 1; } for (int j = 1; j <= l - 1; ++j) printf("."); for (int j = l; j <= r; ++j) printf("#"); for (int j = r + 1; j <= m; ++j) printf("."); puts(""); } return 0; }