← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n, k int
	fmt.Fscan(in, &n, &k)

	g := make([][]byte, 4)
	for i := 0; i < 4; i++ {
		g[i] = make([]byte, n)
		for j := 0; j < n; j++ {
			g[i][j] = '.'
		}
	}

	m := n / 2

	if k%2 == 1 {
		g[1][m] = '#'
		k--
	}

	if k > 2*(n-3) {
		g[1][m] = '#'
		g[2][m] = '#'
		k -= 2
	}

	for c := 1; c < m && k > 0; c++ {
		rc := n - 1 - c
		for r := 1; r <= 2 && k > 0; r++ {
			g[r][c] = '#'
			g[r][rc] = '#'
			k -= 2
		}
	}

	if k != 0 {
		fmt.Fprintln(out, "NO")
		return
	}

	fmt.Fprintln(out, "YES")
	for i := 0; i < 4; i++ {
		fmt.Fprintln(out, string(g[i]))
	}
}