Fox Ciel starts to learn programming. The first task is drawing a fox! However, that turns out to be too hard for a beginner, so she decides to draw a snake instead.

A snake is a pattern on a n by m table. Denote c-th cell of r-th row as (r, c). The tail of the snake is located at (1, 1), then it's body extends to (1, m), then goes down 2 rows to (3, m), then goes left to (3, 1) and so on.

Your task is to draw this snake for Fox Ciel: the empty cells should be represented as dot characters ('.') and the snake cells should be filled with number signs ('#').

Consider sample tests in order to understand the snake pattern.

Input

The only line contains two integers: n and m (3 ≤ n, m ≤ 50). 

n is an odd number.

Output

Output n lines. Each line should contain a string consisting of m characters. Do not output spaces.

Examples

Input

3 3


Output

###
..#
###


Input

3 4


Output

####
...#
####


Input

5 3


Output

###
..#
###
#..
###


Input

9 9


Output

#########
........#
#########
#........
#########
........#
#########
#........
#########
import java.io.*;
import java.math.*;
import java.util.*;


public class Main {
    public static int ONLINE_MODE = 1;
    public static int OFFLINE_MODE = 2;

    public int mode = 0;

    public Scanner in = null;
    public BufferedWriter out = null;

    public Main(int mode, Scanner in, BufferedWriter out) {
        this.mode = mode;
        this.in = in;
        this.out = out;
    }

    public void open() {
        if (mode == Main.ONLINE_MODE) {
            in = new Scanner(System.in);
            out = new BufferedWriter(new OutputStreamWriter(System.out));
        }
    }

    public void close() {
        in.close();
        try {
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void echo(String output) {
        try {
            out.write(output);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void echos(Collection collection, String separator) {
        StringBuffer sb = new StringBuffer();
        for (Object sentence : collection) {
            sb.append(sentence.toString() + separator);
        }
        String output = sb.toString().length() > 0 ?
                sb.toString().substring(0, sb.toString().length() - separator.length()) : sb.toString();
        echo(output);
    }

    public void echo(String format, Object... args) {
        String output = String.format(format, args);
        try {
            out.write(output);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Main main = new Main(Main.ONLINE_MODE, null, null);
        main.open();
        main.execute();
        main.close();
    }

    // 工具方法

    public static int up(double num) {
        return (int) Math.ceil(num);
    }

    public static ArrayList<Character> chars(String word) {
        ArrayList<Character> chars = new ArrayList<Character>();
        for (char letter : word.toCharArray()) {
            chars.add(letter);
        }
        return chars;
    }

    // 临时区

    // 主程序

    public void execute() {
        int n = in.nextInt();
        int m = in.nextInt();
        StringBuffer sb = new StringBuffer();
        String odd;
        String even2;
        String even4;
        for (int i = 0; i < m; i++) {
            sb.append("#");
        }
        odd = sb.toString();
        sb.delete(0, sb.length());
        for (int i = 0; i < m; i++) {
            if (i == 0)
                sb.append("#");
            else
                sb.append(".");
        }
        even4 = sb.toString();
        even2 = sb.reverse().toString();
        for (int i = 1; i <= n; i++) {
            if (i % 2 != 0)
                echo("%s%n", odd);
            else if (i % 4 != 0)
                echo("%s%n", even2);
            else
                echo("%s%n", even4);
        }
    }
}

class BI {
    public BigInteger bi;

    public BI(String value) {
        this.bi = new BigInteger(value);
    }

    public BI(BigInteger bi) {
        this.bi = bi;
    }

    public BI a(BI that) {
        return new BI(this.bi.add(that.bi));
    }

    public BI s(BI that) {
        return new BI(this.bi.subtract(that.bi));
    }

    public BI m(BI that) {
        return new BI(this.bi.multiply(that.bi));
    }

    public BI d(BI that) {
        return new BI(this.bi.divide(that.bi));
    }

    public BI r(BI that) {
        return new BI(this.bi.remainder(that.bi));
    }

    public int compareTo(BI that) {
        return this.bi.compareTo(that.bi);
    }

    public boolean g(BI that) {
        return this.bi.compareTo(that.bi) > 0;
    }

    public boolean ge(BI that) {
        return this.bi.compareTo(that.bi) >= 0;
    }

    public boolean l(BI that) {
        return this.bi.compareTo(that.bi) < 0;
    }

    public boolean le(BI that) {
        return this.bi.compareTo(that.bi) <= 0;
    }

    public BI a(int number) {
        return a(BI.v(number));
    }

    public BI s(int number) {
        return s(BI.v(number));
    }

    public BI m(int number) {
        return m(BI.v(number));
    }

    public BI d(int number) {
        return d(BI.v(number));
    }

    public BI r(int number) {
        return r(BI.v(number));
    }

    public int compareTo(int number) {
        return this.bi.compareTo(BI.v(number).bi);
    }

    public boolean g(int number) {
        return this.bi.compareTo(BI.v(number).bi) > 0;
    }

    public boolean ge(int number) {
        return this.bi.compareTo(BI.v(number).bi) >= 0;
    }

    public boolean l(int number) {
        return this.bi.compareTo(BI.v(number).bi) < 0;
    }

    public boolean le(int number) {
        return this.bi.compareTo(BI.v(number).bi) <= 0;
    }

    public static BI v(int number) {
        return new BI("" + number);
    }

    public String toString() {
        return this.bi + "";
    }
}