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

#########
........#
#########
#........
#########
........#
#########
#........
#########
'use strict'
String.prototype.getNumArray = function () {
  return String(this).split(' ').map(function (value) {
    return parseInt(value);
  });
};

let array = readline().getNumArray(),
    n = array[0],
    m = array[1],
    empty = '.',
    filled = '#',
    snake = [],
    a = 0;

const isHashExist = (row) => row.indexOf('#') === -1;

for (let i = 0; i < n; i++) {
  let str = '';
  for (let j = 0; j < m; j++) {
    if (i % 2 === 0) {
      str += filled;
    } else {
      if (
        (a % 2 === 0 && j === m - 1 && isHashExist(str)) ||
        (a % 2 !== 0 && j === 0 && isHashExist(str))
        ) {
        str += filled;
          a++;
      } else {
        str += empty;
      }
    }
  }
  snake.push(str);
}
for (let i = 0; i < snake.length; i++){
  write(snake[i] + '\n');
};