The city of Fishtopia can be imagined as a grid of 4 rows and an odd number of columns. It has two main villages; the first is located at the top-left cell (1,1), people who stay there love fishing at the Tuna pond at the bottom-right cell (4, n). The second village is located at (4, 1) and its people love the Salmon pond at (1, n).

The mayor of Fishtopia wants to place k hotels in the city, each one occupying one cell. To allow people to enter the city from anywhere, hotels should not be placed on the border cells.

A person can move from one cell to another if those cells are not occupied by hotels and share a side.

Can you help the mayor place the hotels in a way such that there are equal number of shortest paths from each village to its preferred pond?

Input

The first line of input contain two integers, n and k (3 ≤ n ≤ 99, 0 ≤ k ≤ 2×(n-2)), n is odd, the width of the city, and the number of hotels to be placed, respectively.

Output

Print "YES", if it is possible to place all the hotels in a way that satisfies the problem statement, otherwise print "NO".

If it is possible, print an extra 4 lines that describe the city, each line should have n characters, each of which is "#" if that cell has a hotel on it, or "." if not.

Examples

Input

7 2


Output

YES
.......
.#.....
.#.....
.......


Input

5 3


Output

YES
.....
.###.
.....
.....


import java.io.*;
import java.util.*;

public class Test77 {
    public static void main(String[] z) throws Exception{
        Scanner s = new Scanner(System.in);
        int a = s.nextInt(), b=s.nextInt(), o=1, d=a-2, max=(a-2)*2, t=b;
        char[][] c = new char[4][a];
        for(int q=0; q<4; q++){
            for(int w=0; w<a; w++){
                c[q][w] = '.';
            }
        }
        if((max-b==1 & d%2<1) | (d%2<1 & b%2>0) | b>max) o=0;
        else if(b%2<1){
            for(int w=1; w<a-1 & b>0; w++){
                c[1][w] = '#';
                c[2][w] = '#';
                b-=2;
            }
        }
        else{
            int center = a/2;
            c[1][center] = '#';
            b--;
            for(int w=1; w<center & b>0; w++){
                c[1][center-w] = '#';
                c[1][center+w] = '#';
                b-=2;
            }
            if(max-t==1){
                for(int w=1; w<a-1; w++) c[2][w] = '#';
                c[2][center]='.';
            }
            else if(b>0){
                c[2][2] = '#';
                c[2][a-3] = '#';
                b-=2;
                for(int r=3; b>0; b--, r++) c[2][r] = '#';
            }
        }
        if(o<1) System.out.println("NO");
        else{
            System.out.println("YES");
            for(char[] i : c){
                for(char p: i) System.out.print(p);
                System.out.println();
            }
        }
    }
}