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.util.*;




public class Codeforce{


    static FastReader fs = new FastReader();

    public static void main(String[] args) {
        //int t = fs.nextInt();
        
        //while(t-- >0){
            int n = fs.nextInt(), m = fs.nextInt();
            int k = 1;
            boolean lone = true, rone = true;

            for(int i=0;i<n;i++){
                for(int j=0;j<m;j++){
                    if(i%2==0){
                        System.out.print("#");
                    }else{
                        if(k%2==1 && j==m-1 && lone){
                            System.out.print("#");
                            lone = false;
                        }
                        else if (k%2==0 && j==0 && rone){
                            System.out.print("#");
                            rone = false;
                        }
                        else System.out.print(".");

                    }
                }
                lone = true; rone = true;
                if(i%2==1)k++;
                System.out.println();
            }



          
        //}
        
            
            
            
            
            
        
            
        


    
    }

    public static int isplaindrome(StringBuilder b){
        for(int i=0,g=b.length()-1;i<b.length()/2;i++,g--){
            if(i>=g)break;
            if(b.charAt(i)!=b.charAt(g)){ return i;}
        }
        return -1;
    }

    public static  void sort(int[] arr){
        ArrayList<Integer> list = new ArrayList<>();
        for(int i:arr) list.add(i);
        Collections.sort(list);
        int index =0;
        for(int i:list) {arr[index]=i; index++;}
    }

    public static  void sort(char[] arr){
        ArrayList<Character> list = new ArrayList<>();
        for(char i:arr) list.add(i);
        Collections.sort(list);
        int index =0;
        for(char i:list) {arr[index]=i; index++;}
    }

    public static  void sort(long[] arr){
        ArrayList<Long> list = new ArrayList<>();
        for(long i:arr) list.add(i);
        Collections.sort(list);
        int index =0;
        for(long i:list) {arr[index]=i; index++;}
    }

    public static  void reverse(int[] arr){
        ArrayList<Integer> list = new ArrayList<>();
        for(int i:arr) list.add(i);
        Collections.sort(list, Collections.reverseOrder());
        int index =0;
        for(int i:list) {arr[index]=i; index++;}
    }

    static public void printArray(int[] arr){
        for(int i=0;i<arr.length;i++) System.out.print(arr[i]+" ");
        System.out.println();

    }

    static public long max(long[] arr){
        long max = Long.MIN_VALUE;
        for(long l:arr){
            if(l>max) max = l;
        }
        return max;
    }
}


class Data implements Comparable<Data>{
    int  x;
    int  a;
    public Data(int x, int a){
        this.x = x;
        this.a = a;
    }
    @Override
    public int compareTo(Data o) {
        if(x>o.x) return 1;
        else if(x<o.x) return -1;
        else return 0;
    }
}

class FastReader{
    private BufferedReader br;
    private StringTokenizer str;

    public FastReader(){
        br = new BufferedReader(new InputStreamReader(System.in));
    }

    private String next(){
        while(str==null || !str.hasMoreTokens()){
            try{
                str = new StringTokenizer(br.readLine());
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        return str.nextToken();
    }

    public int nextInt(){
        return Integer.parseInt(next());
    }

    public long nextLong(){
        return  Long.parseLong(next());
    }

    public double nextDouble(){
        return Double.parseDouble(next());
    }

    public String nextLine(){
        String s = "";
        try{
            s = br.readLine();
        }catch(IOException e){
            e.printStackTrace();
        }

        return s;
    }

    public int[] readArray(int n){
        int[] arr = new int[n];
        for(int i =0;i<n;i++) arr[i] = nextInt();
        return arr;
    }

    public long[] readArrayL(int n){
        long[] arr = new long[n];
        for(int i =0;i<n;i++) arr[i] = nextLong();
        return arr;
    }
    public double[] readArrayD(int n){
        double[] arr = new double[n];
        for(int i =0;i<n;i++) arr[i] = nextDouble();
        return arr;
    }

}