#!/usr/bin/env python3 import itertools def div_ceil(a, b): return (a + b - 1) // b def construct(n, k): rest = n m = div_ceil(n, k) board = [["." for _ in range(m)] for _ in range(m)] for i in range(0, m, k): for dr, dc in itertools.product(range(k), repeat=2): r, c = i + dr, i + dc if 0 <= r < m and 0 <= c < m and rest > 0: board[r][c] = "#" rest -= 1 return m, board def main(): n, k = (int(z) for z in input().split()) m, board = construct(n, k) print(m) print(*("".join(line) for line in board), sep="\n") if __name__ == "__main__": main()